From 5408104f5bf33aef595a561c3fd071ae411efc62 Mon Sep 17 00:00:00 2001 From: Shantanu Kotambkar <52007797+skotambkar@users.noreply.github.com> Date: Mon, 11 Oct 2021 15:05:21 -0700 Subject: [PATCH] update api models (#1455) * update models * Regenerated API Clients --- .../18e0e4f329864f9cb88fda7fb26bd9a5.json | 39 + .../41575353444b40ffbf474f4155544f00.json | 8 + .../aws-models/amplifybackend.2020-08-11.json | 7 + .../applicationautoscaling.2016-02-06.json | 84 +- .../aws-models/apprunner.2020-05-15.json | 162 +- .../aws-models/backup.2018-11-15.json | 213 +- .../aws-models/chime.2018-05-01.json | 239 +- .../aws-models/codebuild.2016-10-06.json | 27 +- .../aws-models/ec2.2016-11-15.json | 1046 ++- .../aws-models/efs.2015-02-01.json | 3 + .../elasticloadbalancingv2.2015-12-01.json | 33 +- .../aws-models/firehose.2015-08-04.json | 275 + .../aws-models/frauddetector.2019-11-15.json | 1077 ++- .../aws-models/fsx.2018-03-01.json | 36 +- .../aws-models/glue.2017-03-31.json | 11 +- .../aws-models/grafana.2020-08-18.json | 2311 +++++++ .../aws-models/kendra.2019-02-03.json | 155 +- .../aws-models/kms.2014-11-01.json | 288 +- .../aws-models/lexmodelsv2.2020-08-07.json | 176 +- .../aws-models/lexruntimev2.2020-08-07.json | 20 +- .../aws-models/location.2020-11-19.json | 79 +- .../aws-models/mediaconvert.2017-08-29.json | 214 + .../aws-models/medialive.2017-10-14.json | 249 +- .../aws-models/sagemaker.2017-07-24.json | 32 +- .../aws-models/secretsmanager.2017-10-17.json | 50 +- .../aws-models/securityhub.2018-10-26.json | 1308 +++- .../aws-models/ssm.2014-11-06.json | 12 +- .../aws-models/synthetics.2017-10-11.json | 97 + .../aws-models/workmail.2017-10-01.json | 100 + .../aws/go/codegen/endpoint-prefix.json | 1 + .../smithy/aws/go/codegen/endpoints.json | 205 + internal/repotools/go_module_metadata.go | 6 + service/amplifybackend/api_op_GetBackend.go | 3 + service/amplifybackend/deserializers.go | 9 + .../api_op_DeleteScalingPolicy.go | 94 +- .../api_op_DeleteScheduledAction.go | 94 +- .../api_op_DeregisterScalableTarget.go | 51 +- .../api_op_DescribeScalableTargets.go | 51 +- .../api_op_DescribeScalingActivities.go | 80 +- .../api_op_DescribeScalingPolicies.go | 92 +- .../api_op_DescribeScheduledActions.go | 80 +- .../api_op_PutScalingPolicy.go | 99 +- .../api_op_PutScheduledAction.go | 94 +- .../api_op_RegisterScalableTarget.go | 58 +- service/applicationautoscaling/doc.go | 38 +- service/applicationautoscaling/types/enums.go | 6 + service/applicationautoscaling/types/types.go | 432 +- .../apprunner/api_op_AssociateCustomDomain.go | 2 +- .../api_op_CreateAutoScalingConfiguration.go | 14 +- service/apprunner/api_op_CreateConnection.go | 5 +- service/apprunner/api_op_CreateService.go | 10 +- .../api_op_DeleteAutoScalingConfiguration.go | 4 +- service/apprunner/api_op_DeleteConnection.go | 4 +- service/apprunner/api_op_DeleteService.go | 6 +- ...api_op_DescribeAutoScalingConfiguration.go | 2 +- .../apprunner/api_op_DescribeCustomDomains.go | 2 +- service/apprunner/api_op_DescribeService.go | 2 +- .../api_op_DisassociateCustomDomain.go | 2 +- .../api_op_ListAutoScalingConfigurations.go | 8 +- service/apprunner/api_op_ListConnections.go | 4 +- service/apprunner/api_op_ListOperations.go | 2 +- service/apprunner/api_op_ListServices.go | 3 +- .../apprunner/api_op_ListTagsForResource.go | 2 +- service/apprunner/api_op_PauseService.go | 4 +- service/apprunner/api_op_ResumeService.go | 6 +- service/apprunner/api_op_StartDeployment.go | 4 +- service/apprunner/api_op_UpdateService.go | 6 +- service/apprunner/deserializers.go | 2 +- service/apprunner/doc.go | 27 +- service/apprunner/types/errors.go | 9 +- service/apprunner/types/types.go | 84 +- service/backup/api_op_CreateFramework.go | 4 +- service/backup/api_op_CreateReportPlan.go | 16 +- ...i_op_DeleteBackupVaultLockConfiguration.go | 121 + service/backup/api_op_DescribeBackupVault.go | 36 + .../api_op_GetSupportedResourceTypes.go | 22 +- .../api_op_PutBackupVaultLockConfiguration.go | 164 + service/backup/api_op_UpdateReportPlan.go | 7 +- service/backup/deserializers.go | 341 + service/backup/generated.json | 2 + service/backup/serializers.go | 172 + service/backup/types/types.go | 63 +- service/backup/validators.go | 78 + .../api_op_CreateMediaCapturePipeline.go | 4 + service/chime/api_op_UpdateGlobalSettings.go | 7 - service/chime/deserializers.go | 382 ++ service/chime/serializers.go | 159 + service/chime/types/enums.go | 68 + service/chime/types/types.go | 106 +- service/chime/validators.go | 142 +- .../codebuild/api_op_ListBuildsForProject.go | 19 +- service/codebuild/api_op_UpdateProject.go | 2 +- service/codebuild/deserializers.go | 9 + service/codebuild/serializers.go | 5 + service/codebuild/types/enums.go | 18 + service/codebuild/types/types.go | 9 + .../databrew/internal/endpoints/endpoints.go | 28 + service/ec2/api_op_AllocateAddress.go | 15 +- .../api_op_CancelCapacityReservationFleets.go | 142 + service/ec2/api_op_CopyFpgaImage.go | 2 +- .../api_op_CreateCapacityReservationFleet.go | 257 + service/ec2/api_op_CreateFlowLogs.go | 4 +- service/ec2/api_op_CreateFpgaImage.go | 4 +- service/ec2/api_op_CreateLaunchTemplate.go | 4 +- .../ec2/api_op_CreateTrafficMirrorFilter.go | 4 +- .../api_op_CreateTrafficMirrorFilterRule.go | 8 +- .../ec2/api_op_CreateTrafficMirrorSession.go | 4 +- .../ec2/api_op_CreateTrafficMirrorTarget.go | 4 +- service/ec2/api_op_CreateVpcEndpoint.go | 10 +- ...CreateVpcEndpointConnectionNotification.go | 2 +- ...p_CreateVpcEndpointServiceConfiguration.go | 12 +- .../ec2/api_op_DescribeAvailabilityZones.go | 2 +- ...pi_op_DescribeCapacityReservationFleets.go | 244 + service/ec2/api_op_DescribeFleetHistory.go | 6 +- service/ec2/api_op_DescribeFpgaImages.go | 45 +- service/ec2/api_op_DescribeIdFormat.go | 12 +- service/ec2/api_op_DescribeRegions.go | 10 +- service/ec2/api_op_DescribeSnapshots.go | 24 + .../api_op_DescribeSpotFleetRequestHistory.go | 5 +- .../api_op_DescribeVpcEndpointConnections.go | 12 +- ...tVpnConnectionDeviceSampleConfiguration.go | 4 +- service/ec2/api_op_ImportImage.go | 7 +- .../ec2/api_op_ModifyAvailabilityZoneGroup.go | 5 +- .../api_op_ModifyCapacityReservationFleet.go | 157 + .../ec2/api_op_ModifyFpgaImageAttribute.go | 4 +- service/ec2/api_op_ModifyIdFormat.go | 10 +- ...odifyTrafficMirrorFilterNetworkServices.go | 4 +- .../api_op_ModifyTrafficMirrorFilterRule.go | 2 +- ..._op_ModifyVpcEndpointServicePermissions.go | 9 +- service/ec2/api_op_ReleaseAddress.go | 14 +- .../ec2/api_op_SearchLocalGatewayRoutes.go | 8 +- service/ec2/deserializers.go | 4139 ++++++++---- service/ec2/generated.json | 4 + service/ec2/serializers.go | 450 ++ service/ec2/types/enums.go | 66 + service/ec2/types/types.go | 430 +- service/ec2/validators.go | 129 +- service/efs/deserializers.go | 3 + .../api_op_CreateTargetGroup.go | 5 + .../elasticloadbalancingv2/deserializers.go | 13 + service/elasticloadbalancingv2/serializers.go | 5 + service/elasticloadbalancingv2/types/enums.go | 18 + service/elasticloadbalancingv2/types/types.go | 8 +- .../firehose/api_op_CreateDeliveryStream.go | 2 + service/firehose/api_op_UpdateDestination.go | 2 + service/firehose/deserializers.go | 230 + service/firehose/serializers.go | 199 + service/firehose/types/enums.go | 44 + service/firehose/types/types.go | 118 + service/firehose/validators.go | 67 + .../api_op_CancelBatchImportJob.go | 118 + .../api_op_CreateBatchImportJob.go | 143 + .../api_op_CreateModelVersion.go | 8 +- .../api_op_DeleteBatchImportJob.go | 116 + service/frauddetector/api_op_DeleteEvent.go | 3 + .../frauddetector/api_op_DeleteEventType.go | 4 +- .../api_op_DeleteEventsByEventType.go | 123 + .../api_op_GetBatchImportJobs.go | 218 + ...api_op_GetDeleteEventsByEventTypeStatus.go | 124 + service/frauddetector/api_op_GetEvent.go | 127 + .../api_op_GetEventPrediction.go | 34 +- .../api_op_GetKMSEncryptionKey.go | 4 +- .../frauddetector/api_op_GetModelVersion.go | 7 +- service/frauddetector/api_op_PutEventType.go | 3 + .../api_op_PutKMSEncryptionKey.go | 3 +- service/frauddetector/api_op_SendEvent.go | 148 + .../frauddetector/api_op_UpdateEventLabel.go | 132 + service/frauddetector/api_op_UpdateModel.go | 2 +- .../api_op_UpdateModelVersion.go | 7 +- .../api_op_UpdateModelVersionStatus.go | 2 +- service/frauddetector/deserializers.go | 3261 ++++++++-- service/frauddetector/generated.json | 9 + service/frauddetector/serializers.go | 688 +- service/frauddetector/types/enums.go | 44 +- service/frauddetector/types/errors.go | 19 +- service/frauddetector/types/types.go | 145 +- service/frauddetector/validators.go | 404 ++ service/fsx/api_op_CreateFileSystem.go | 12 + .../fsx/api_op_CreateFileSystemFromBackup.go | 8 + service/fsx/deserializers.go | 9 + service/fsx/serializers.go | 10 + service/fsx/types/types.go | 21 +- service/glue/api_op_CreateConnection.go | 3 + service/glue/api_op_GetPartitions.go | 4 + service/glue/serializers.go | 7 + service/grafana/LICENSE.txt | 202 + service/grafana/api_client.go | 262 + service/grafana/api_op_AssociateLicense.go | 131 + service/grafana/api_op_CreateWorkspace.go | 203 + service/grafana/api_op_DeleteWorkspace.go | 123 + service/grafana/api_op_DescribeWorkspace.go | 123 + .../api_op_DescribeWorkspaceAuthentication.go | 125 + service/grafana/api_op_DisassociateLicense.go | 128 + service/grafana/api_op_ListPermissions.go | 236 + service/grafana/api_op_ListWorkspaces.go | 216 + service/grafana/api_op_UpdatePermissions.go | 128 + service/grafana/api_op_UpdateWorkspace.go | 193 + .../api_op_UpdateWorkspaceAuthentication.go | 141 + service/grafana/deserializers.go | 3916 +++++++++++ service/grafana/doc.go | 15 + service/grafana/endpoints.go | 160 + service/grafana/generated.json | 36 + service/grafana/go.mod | 10 + service/grafana/go.sum | 14 + service/grafana/go_module_metadata.go | 6 + .../grafana/internal/endpoints/endpoints.go | 168 + .../internal/endpoints/endpoints_test.go | 11 + service/grafana/protocol_test.go | 3 + service/grafana/serializers.go | 1145 ++++ service/grafana/types/enums.go | 284 + service/grafana/types/errors.go | 161 + service/grafana/types/types.go | 457 ++ service/grafana/types/types_exported_test.go | 30 + service/grafana/validators.go | 520 ++ .../iotevents/internal/endpoints/endpoints.go | 1 + service/kendra/api_op_CreateDataSource.go | 18 +- service/kendra/api_op_CreateFaq.go | 6 + service/kendra/api_op_CreateIndex.go | 15 +- service/kendra/api_op_CreateThesaurus.go | 2 +- service/kendra/api_op_DescribeDataSource.go | 7 + service/kendra/api_op_DescribeFaq.go | 6 + service/kendra/api_op_DescribeIndex.go | 4 + ...pi_op_DescribeQuerySuggestionsBlockList.go | 2 +- .../kendra/api_op_ListDataSourceSyncJobs.go | 12 +- service/kendra/api_op_ListFaqs.go | 11 +- .../api_op_ListGroupsOlderThanOrderingId.go | 13 +- service/kendra/api_op_ListThesauri.go | 2 +- service/kendra/api_op_PutPrincipalMapping.go | 9 +- service/kendra/api_op_Query.go | 2 +- service/kendra/api_op_UpdateDataSource.go | 7 + service/kendra/api_op_UpdateIndex.go | 7 +- service/kendra/deserializers.go | 81 + .../kendra/internal/endpoints/endpoints.go | 27 + service/kendra/serializers.go | 41 + service/kendra/types/enums.go | 28 +- service/kendra/types/types.go | 92 +- service/kendra/validators.go | 25 + service/kms/api_op_ListAliases.go | 4 +- service/kms/api_op_UpdateCustomKeyStore.go | 5 +- service/kms/doc.go | 4 +- service/lexmodelsv2/api_op_CreateBotLocale.go | 4 +- service/lexmodelsv2/api_op_DescribeImport.go | 2 +- service/lexmodelsv2/api_op_ListExports.go | 2 +- service/lexmodelsv2/deserializers.go | 235 + service/lexmodelsv2/serializers.go | 121 + service/lexmodelsv2/types/types.go | 134 +- service/lexmodelsv2/validators.go | 106 + service/lexruntimev2/api_op_RecognizeText.go | 22 +- .../lexruntimev2/api_op_RecognizeUtterance.go | 22 +- service/lexruntimev2/types/enums.go | 14 +- service/lexruntimev2/types/types.go | 4 +- .../api_op_BatchUpdateDevicePosition.go | 14 +- service/location/api_op_CalculateRoute.go | 10 +- service/location/api_op_CreateMap.go | 4 +- service/location/api_op_CreatePlaceIndex.go | 8 +- .../location/api_op_CreateRouteCalculator.go | 11 +- service/location/api_op_CreateTracker.go | 25 +- service/location/api_op_DescribeMap.go | 4 +- service/location/api_op_DescribePlaceIndex.go | 8 +- service/location/api_op_DescribeTracker.go | 7 +- service/location/api_op_GetMapGlyphs.go | 4 +- service/location/api_op_UpdateTracker.go | 16 + service/location/deserializers.go | 9 + service/location/serializers.go | 10 + service/location/types/enums.go | 12 + service/location/types/types.go | 102 +- service/mediaconvert/api_op_DeletePolicy.go | 107 + service/mediaconvert/api_op_GetPolicy.go | 114 + service/mediaconvert/api_op_PutPolicy.go | 126 + service/mediaconvert/deserializers.go | 480 ++ service/mediaconvert/generated.json | 3 + service/mediaconvert/serializers.go | 182 + service/mediaconvert/types/enums.go | 18 + service/mediaconvert/types/types.go | 17 + service/mediaconvert/validators.go | 39 + service/medialive/api_op_ClaimDevice.go | 115 + service/medialive/api_op_CreateChannel.go | 2 +- service/medialive/api_op_CreateInput.go | 2 +- service/medialive/api_op_DescribeInput.go | 4 +- service/medialive/deserializers.go | 327 + service/medialive/generated.json | 1 + service/medialive/serializers.go | 167 + service/medialive/types/enums.go | 40 + service/medialive/types/types.go | 78 +- service/medialive/validators.go | 80 + service/sagemaker/api_op_CreateEndpoint.go | 14 +- .../sagemaker/api_op_CreateFeatureGroup.go | 12 +- service/sagemaker/api_op_DescribeApp.go | 4 +- .../sagemaker/api_op_DescribeTrainingJob.go | 4 +- service/sagemaker/types/enums.go | 6 +- service/sagemaker/types/types.go | 170 +- .../api_op_CancelRotateSecret.go | 18 +- service/secretsmanager/api_op_CreateSecret.go | 12 +- .../api_op_DeleteResourcePolicy.go | 17 +- service/secretsmanager/api_op_DeleteSecret.go | 18 +- .../secretsmanager/api_op_DescribeSecret.go | 21 +- .../api_op_GetResourcePolicy.go | 17 +- .../secretsmanager/api_op_GetSecretValue.go | 17 +- .../api_op_ListSecretVersionIds.go | 17 +- .../api_op_PutResourcePolicy.go | 18 +- .../secretsmanager/api_op_PutSecretValue.go | 145 +- .../secretsmanager/api_op_RestoreSecret.go | 17 +- service/secretsmanager/api_op_RotateSecret.go | 18 +- service/secretsmanager/api_op_TagResource.go | 28 +- .../secretsmanager/api_op_UntagResource.go | 28 +- service/secretsmanager/api_op_UpdateSecret.go | 125 +- .../api_op_UpdateSecretVersionStage.go | 17 +- .../api_op_ValidateResourcePolicy.go | 17 +- service/securityhub/api_op_CreateMembers.go | 22 +- service/securityhub/deserializers.go | 5770 ++++++++++++----- service/securityhub/serializers.go | 1291 +++- service/securityhub/types/types.go | 721 +- service/ssm/api_op_CreateAssociation.go | 6 +- .../ssm/api_op_StartChangeRequestExecution.go | 10 + service/ssm/serializers.go | 5 + service/ssm/types/types.go | 8 +- .../ssooidc/internal/endpoints/endpoints.go | 6 + service/synthetics/api_op_CreateCanary.go | 4 + service/synthetics/api_op_UpdateCanary.go | 9 + service/synthetics/deserializers.go | 90 + service/synthetics/serializers.go | 50 + service/synthetics/types/enums.go | 18 + service/synthetics/types/types.go | 49 + .../textract/internal/endpoints/endpoints.go | 61 + .../api_op_DescribeInboundDmarcSettings.go | 120 + .../api_op_PutInboundDmarcSettings.go | 121 + service/workmail/deserializers.go | 299 + service/workmail/generated.json | 2 + service/workmail/serializers.go | 123 + service/workmail/validators.go | 81 + 330 files changed, 41007 insertions(+), 6009 deletions(-) create mode 100644 .changelog/18e0e4f329864f9cb88fda7fb26bd9a5.json create mode 100644 .changelog/41575353444b40ffbf474f4155544f00.json create mode 100644 codegen/sdk-codegen/aws-models/grafana.2020-08-18.json create mode 100644 internal/repotools/go_module_metadata.go create mode 100644 service/backup/api_op_DeleteBackupVaultLockConfiguration.go create mode 100644 service/backup/api_op_PutBackupVaultLockConfiguration.go create mode 100644 service/ec2/api_op_CancelCapacityReservationFleets.go create mode 100644 service/ec2/api_op_CreateCapacityReservationFleet.go create mode 100644 service/ec2/api_op_DescribeCapacityReservationFleets.go create mode 100644 service/ec2/api_op_ModifyCapacityReservationFleet.go create mode 100644 service/frauddetector/api_op_CancelBatchImportJob.go create mode 100644 service/frauddetector/api_op_CreateBatchImportJob.go create mode 100644 service/frauddetector/api_op_DeleteBatchImportJob.go create mode 100644 service/frauddetector/api_op_DeleteEventsByEventType.go create mode 100644 service/frauddetector/api_op_GetBatchImportJobs.go create mode 100644 service/frauddetector/api_op_GetDeleteEventsByEventTypeStatus.go create mode 100644 service/frauddetector/api_op_GetEvent.go create mode 100644 service/frauddetector/api_op_SendEvent.go create mode 100644 service/frauddetector/api_op_UpdateEventLabel.go create mode 100644 service/grafana/LICENSE.txt create mode 100644 service/grafana/api_client.go create mode 100644 service/grafana/api_op_AssociateLicense.go create mode 100644 service/grafana/api_op_CreateWorkspace.go create mode 100644 service/grafana/api_op_DeleteWorkspace.go create mode 100644 service/grafana/api_op_DescribeWorkspace.go create mode 100644 service/grafana/api_op_DescribeWorkspaceAuthentication.go create mode 100644 service/grafana/api_op_DisassociateLicense.go create mode 100644 service/grafana/api_op_ListPermissions.go create mode 100644 service/grafana/api_op_ListWorkspaces.go create mode 100644 service/grafana/api_op_UpdatePermissions.go create mode 100644 service/grafana/api_op_UpdateWorkspace.go create mode 100644 service/grafana/api_op_UpdateWorkspaceAuthentication.go create mode 100644 service/grafana/deserializers.go create mode 100644 service/grafana/doc.go create mode 100644 service/grafana/endpoints.go create mode 100644 service/grafana/generated.json create mode 100644 service/grafana/go.mod create mode 100644 service/grafana/go.sum create mode 100644 service/grafana/go_module_metadata.go create mode 100644 service/grafana/internal/endpoints/endpoints.go create mode 100644 service/grafana/internal/endpoints/endpoints_test.go create mode 100644 service/grafana/protocol_test.go create mode 100644 service/grafana/serializers.go create mode 100644 service/grafana/types/enums.go create mode 100644 service/grafana/types/errors.go create mode 100644 service/grafana/types/types.go create mode 100644 service/grafana/types/types_exported_test.go create mode 100644 service/grafana/validators.go create mode 100644 service/mediaconvert/api_op_DeletePolicy.go create mode 100644 service/mediaconvert/api_op_GetPolicy.go create mode 100644 service/mediaconvert/api_op_PutPolicy.go create mode 100644 service/medialive/api_op_ClaimDevice.go create mode 100644 service/workmail/api_op_DescribeInboundDmarcSettings.go create mode 100644 service/workmail/api_op_PutInboundDmarcSettings.go diff --git a/.changelog/18e0e4f329864f9cb88fda7fb26bd9a5.json b/.changelog/18e0e4f329864f9cb88fda7fb26bd9a5.json new file mode 100644 index 00000000000..1c817913d9a --- /dev/null +++ b/.changelog/18e0e4f329864f9cb88fda7fb26bd9a5.json @@ -0,0 +1,39 @@ +{ + "id": "18e0e4f3-2986-4f9c-b88f-da7fb26bd9a5", + "type": "feature", + "description": "API client updated", + "modules": [ + "internal/repotools", + "service/amplifybackend", + "service/applicationautoscaling", + "service/apprunner", + "service/backup", + "service/chime", + "service/codebuild", + "service/databrew", + "service/ec2", + "service/efs", + "service/elasticloadbalancingv2", + "service/firehose", + "service/frauddetector", + "service/fsx", + "service/glue", + "service/grafana", + "service/iotevents", + "service/kendra", + "service/kms", + "service/lexmodelsv2", + "service/lexruntimev2", + "service/location", + "service/mediaconvert", + "service/medialive", + "service/sagemaker", + "service/secretsmanager", + "service/securityhub", + "service/ssm", + "service/ssooidc", + "service/synthetics", + "service/textract", + "service/workmail" + ] +} \ No newline at end of file diff --git a/.changelog/41575353444b40ffbf474f4155544f00.json b/.changelog/41575353444b40ffbf474f4155544f00.json new file mode 100644 index 00000000000..09ec5dd8925 --- /dev/null +++ b/.changelog/41575353444b40ffbf474f4155544f00.json @@ -0,0 +1,8 @@ +{ + "id": "41575353-444b-40ff-bf47-4f4155544f00", + "type": "release", + "description": "New AWS service client module", + "modules": [ + "service/grafana" + ] +} \ No newline at end of file diff --git a/codegen/sdk-codegen/aws-models/amplifybackend.2020-08-11.json b/codegen/sdk-codegen/aws-models/amplifybackend.2020-08-11.json index 7732fcafcf7..84c31e2e3ca 100644 --- a/codegen/sdk-codegen/aws-models/amplifybackend.2020-08-11.json +++ b/codegen/sdk-codegen/aws-models/amplifybackend.2020-08-11.json @@ -2368,6 +2368,13 @@ "com.amazonaws.amplifybackend#GetBackendResponse": { "type": "structure", "members": { + "AmplifyFeatureFlags": { + "target": "com.amazonaws.amplifybackend#__string", + "traits": { + "smithy.api#documentation": "

A stringified version of the cli.json file for your Amplify project.

", + "smithy.api#jsonName": "amplifyFeatureFlags" + } + }, "AmplifyMetaConfig": { "target": "com.amazonaws.amplifybackend#__string", "traits": { diff --git a/codegen/sdk-codegen/aws-models/applicationautoscaling.2016-02-06.json b/codegen/sdk-codegen/aws-models/applicationautoscaling.2016-02-06.json index bcf1c260535..2bd558b4404 100644 --- a/codegen/sdk-codegen/aws-models/applicationautoscaling.2016-02-06.json +++ b/codegen/sdk-codegen/aws-models/applicationautoscaling.2016-02-06.json @@ -123,7 +123,7 @@ "name": "application-autoscaling" }, "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "

With Application Auto Scaling, you can configure automatic scaling for the following\n resources:

\n \n

\n API Summary\n

\n

The Application Auto Scaling service API includes three key sets of actions:

\n \n\n \n

To learn more about Application Auto Scaling, including information about granting IAM users required\n permissions for Application Auto Scaling actions, see the Application Auto Scaling User\n Guide.

", + "smithy.api#documentation": "

With Application Auto Scaling, you can configure automatic scaling for the following\n resources:

\n \n

\n API Summary\n

\n

The Application Auto Scaling service API includes three key sets of actions:

\n \n\n \n

To learn more about Application Auto Scaling, including information about granting IAM users required\n permissions for Application Auto Scaling actions, see the Application Auto Scaling User\n Guide.

", "smithy.api#title": "Application Auto Scaling" } }, @@ -237,14 +237,14 @@ "ResourceId": { "target": "com.amazonaws.applicationautoscaling#ResourceIdMaxLen1600", "traits": { - "smithy.api#documentation": "

The identifier of the resource associated with the scalable target.\n This string consists of the resource type and unique identifier.

\n ", + "smithy.api#documentation": "

The identifier of the resource associated with the scalable target.\n This string consists of the resource type and unique identifier.

\n ", "smithy.api#required": {} } }, "ScalableDimension": { "target": "com.amazonaws.applicationautoscaling#ScalableDimension", "traits": { - "smithy.api#documentation": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

\n ", + "smithy.api#documentation": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

\n ", "smithy.api#required": {} } } @@ -300,14 +300,14 @@ "ResourceId": { "target": "com.amazonaws.applicationautoscaling#ResourceIdMaxLen1600", "traits": { - "smithy.api#documentation": "

The identifier of the resource associated with the scheduled action.\n This string consists of the resource type and unique identifier.

\n ", + "smithy.api#documentation": "

The identifier of the resource associated with the scheduled action.\n This string consists of the resource type and unique identifier.

\n ", "smithy.api#required": {} } }, "ScalableDimension": { "target": "com.amazonaws.applicationautoscaling#ScalableDimension", "traits": { - "smithy.api#documentation": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

\n ", + "smithy.api#documentation": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

\n ", "smithy.api#required": {} } } @@ -356,14 +356,14 @@ "ResourceId": { "target": "com.amazonaws.applicationautoscaling#ResourceIdMaxLen1600", "traits": { - "smithy.api#documentation": "

The identifier of the resource associated with the scalable target.\n This string consists of the resource type and unique identifier.

\n ", + "smithy.api#documentation": "

The identifier of the resource associated with the scalable target.\n This string consists of the resource type and unique identifier.

\n ", "smithy.api#required": {} } }, "ScalableDimension": { "target": "com.amazonaws.applicationautoscaling#ScalableDimension", "traits": { - "smithy.api#documentation": "

The scalable dimension associated with the scalable target.\n This string consists of the service namespace, resource type, and scaling property.

\n ", + "smithy.api#documentation": "

The scalable dimension associated with the scalable target.\n This string consists of the service namespace, resource type, and scaling property.

\n ", "smithy.api#required": {} } } @@ -418,13 +418,13 @@ "ResourceIds": { "target": "com.amazonaws.applicationautoscaling#ResourceIdsMaxLen1600", "traits": { - "smithy.api#documentation": "

The identifier of the resource associated with the scalable target.\n This string consists of the resource type and unique identifier.

\n " + "smithy.api#documentation": "

The identifier of the resource associated with the scalable target.\n This string consists of the resource type and unique identifier.

\n " } }, "ScalableDimension": { "target": "com.amazonaws.applicationautoscaling#ScalableDimension", "traits": { - "smithy.api#documentation": "

The scalable dimension associated with the scalable target.\n This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID.

\n " + "smithy.api#documentation": "

The scalable dimension associated with the scalable target.\n This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID.

\n " } }, "MaxResults": { @@ -503,13 +503,13 @@ "ResourceId": { "target": "com.amazonaws.applicationautoscaling#ResourceIdMaxLen1600", "traits": { - "smithy.api#documentation": "

The identifier of the resource associated with the scaling activity.\n This string consists of the resource type and unique identifier.

\n " + "smithy.api#documentation": "

The identifier of the resource associated with the scaling activity.\n This string consists of the resource type and unique identifier.

\n " } }, "ScalableDimension": { "target": "com.amazonaws.applicationautoscaling#ScalableDimension", "traits": { - "smithy.api#documentation": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.\n If you specify a scalable dimension, you must also specify a resource ID.

\n " + "smithy.api#documentation": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.\n If you specify a scalable dimension, you must also specify a resource ID.

\n " } }, "MaxResults": { @@ -597,19 +597,19 @@ "ResourceId": { "target": "com.amazonaws.applicationautoscaling#ResourceIdMaxLen1600", "traits": { - "smithy.api#documentation": "

The identifier of the resource associated with the scaling policy.\n This string consists of the resource type and unique identifier.

\n " + "smithy.api#documentation": "

The identifier of the resource associated with the scaling policy.\n This string consists of the resource type and unique identifier.

\n " } }, "ScalableDimension": { "target": "com.amazonaws.applicationautoscaling#ScalableDimension", "traits": { - "smithy.api#documentation": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.\n If you specify a scalable dimension, you must also specify a resource ID.

\n " + "smithy.api#documentation": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.\n If you specify a scalable dimension, you must also specify a resource ID.

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

The maximum number of scalable targets. This value can be between 1 and\n 50. The default value is 50.

\n

If this parameter is used, the operation returns up to MaxResults results\n at a time, along with a NextToken value. To get the next set of results,\n include the NextToken value in a subsequent call. If this parameter is not\n used, the operation returns up to 50 results and a\n NextToken value, if applicable.

" + "smithy.api#documentation": "

The maximum number of scalable targets. This value can be between 1 and 10. The default\n value is 10.

\n

If this parameter is used, the operation returns up to MaxResults results\n at a time, along with a NextToken value. To get the next set of results,\n include the NextToken value in a subsequent call. If this parameter is not\n used, the operation returns up to 10 results and a NextToken value, if\n applicable.

" } }, "NextToken": { @@ -688,13 +688,13 @@ "ResourceId": { "target": "com.amazonaws.applicationautoscaling#ResourceIdMaxLen1600", "traits": { - "smithy.api#documentation": "

The identifier of the resource associated with the scheduled action.\n This string consists of the resource type and unique identifier.

\n " + "smithy.api#documentation": "

The identifier of the resource associated with the scheduled action.\n This string consists of the resource type and unique identifier.

\n " } }, "ScalableDimension": { "target": "com.amazonaws.applicationautoscaling#ScalableDimension", "traits": { - "smithy.api#documentation": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.\n If you specify a scalable dimension, you must also specify a resource ID.

\n " + "smithy.api#documentation": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.\n If you specify a scalable dimension, you must also specify a resource ID.

\n " } }, "MaxResults": { @@ -986,6 +986,10 @@ { "value": "ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage", "name": "ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage" + }, + { + "value": "NeptuneReaderAverageCPUUtilization", + "name": "NeptuneReaderAverageCPUUtilization" } ] } @@ -1054,7 +1058,7 @@ "ResourceLabel": { "target": "com.amazonaws.applicationautoscaling#ResourceLabel", "traits": { - "smithy.api#documentation": "

Identifies the resource associated with the metric type. You can't specify a resource\n label unless the metric type is ALBRequestCountPerTarget and there is a target\n group attached to the Spot Fleet request or ECS service.

\n

You create the resource label by appending the final portion of the load balancer ARN\n and the final portion of the target group ARN into a single value, separated by a forward\n slash (/). The format of the resource label is:

\n

\n app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff.

\n

Where:

\n \n

To find the ARN for an Application Load Balancer, use the DescribeLoadBalancers API operation. To find the ARN for the target group, use\n the DescribeTargetGroups API operation.

" + "smithy.api#documentation": "

Identifies the resource associated with the metric type. You can't specify a resource\n label unless the metric type is ALBRequestCountPerTarget and there is a target\n group attached to the Spot Fleet request or ECS service.

\n

You create the resource label by appending the final portion of the load balancer ARN\n and the final portion of the target group ARN into a single value, separated by a forward\n slash (/). The format of the resource label is:

\n

\n app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff.

\n

Where:

\n \n

To find the ARN for an Application Load Balancer, use the DescribeLoadBalancers API operation. To find the ARN for the target group, use\n the DescribeTargetGroups API operation.

" } } }, @@ -1114,21 +1118,21 @@ "ResourceId": { "target": "com.amazonaws.applicationautoscaling#ResourceIdMaxLen1600", "traits": { - "smithy.api#documentation": "

The identifier of the resource associated with the scaling policy.\n This string consists of the resource type and unique identifier.

\n ", + "smithy.api#documentation": "

The identifier of the resource associated with the scaling policy.\n This string consists of the resource type and unique identifier.

\n ", "smithy.api#required": {} } }, "ScalableDimension": { "target": "com.amazonaws.applicationautoscaling#ScalableDimension", "traits": { - "smithy.api#documentation": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

\n ", + "smithy.api#documentation": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

\n ", "smithy.api#required": {} } }, "PolicyType": { "target": "com.amazonaws.applicationautoscaling#PolicyType", "traits": { - "smithy.api#documentation": "

The policy type. This parameter is required if you are creating a scaling policy.

\n

The following policy types are supported:

\n

\n TargetTrackingScaling—Not supported for Amazon EMR

\n

\n StepScaling—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces (for Apache\n Cassandra), Amazon MSK, or Amazon ElastiCache for Redis.

\n

For more information, see Target\n tracking scaling policies and Step scaling policies in the Application Auto Scaling User Guide.

" + "smithy.api#documentation": "

The policy type. This parameter is required if you are creating a scaling policy.

\n

The following policy types are supported:

\n

\n TargetTrackingScaling—Not supported for Amazon EMR

\n

\n StepScaling—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or\n Neptune.

\n

For more information, see Target\n tracking scaling policies and Step scaling policies in the Application Auto Scaling User Guide.

" } }, "StepScalingPolicyConfiguration": { @@ -1224,14 +1228,14 @@ "ResourceId": { "target": "com.amazonaws.applicationautoscaling#ResourceIdMaxLen1600", "traits": { - "smithy.api#documentation": "

The identifier of the resource associated with the scheduled action.\n This string consists of the resource type and unique identifier.

\n ", + "smithy.api#documentation": "

The identifier of the resource associated with the scheduled action.\n This string consists of the resource type and unique identifier.

\n ", "smithy.api#required": {} } }, "ScalableDimension": { "target": "com.amazonaws.applicationautoscaling#ScalableDimension", "traits": { - "smithy.api#documentation": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

\n ", + "smithy.api#documentation": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

\n ", "smithy.api#required": {} } }, @@ -1282,7 +1286,7 @@ } ], "traits": { - "smithy.api#documentation": "

Registers or updates a scalable target.

\n

A scalable target is a resource that Application Auto Scaling can scale out and scale in. Scalable\n targets are uniquely identified by the combination of resource ID, scalable dimension, and\n namespace.

\n

When you register a new scalable target, you must specify values for minimum and maximum\n capacity. Current capacity will be adjusted within the specified range when scaling starts.\n Application Auto Scaling scaling policies will not scale capacity to values that are outside of this\n range.

\n

After you register a scalable target, you do not need to register it again to use other\n Application Auto Scaling operations. To see which resources have been registered, use DescribeScalableTargets. You can also view the scaling policies for a service\n namespace by using DescribeScalableTargets. If you no longer need a scalable target, you can\n deregister it by using DeregisterScalableTarget.

\n

To update a scalable target, specify the parameters that you want to change. Include the\n parameters that identify the scalable target: resource ID, scalable dimension, and\n namespace. Any parameters that you don't specify are not changed by this update request.

" + "smithy.api#documentation": "

Registers or updates a scalable target.

\n

A scalable target is a resource that Application Auto Scaling can scale out and scale in. Scalable\n targets are uniquely identified by the combination of resource ID, scalable dimension, and\n namespace.

\n

When you register a new scalable target, you must specify values for minimum and maximum\n capacity. Current capacity will be adjusted within the specified range when scaling starts.\n Application Auto Scaling scaling policies will not scale capacity to values that are outside of this\n range.

\n

After you register a scalable target, you do not need to register it again to use other\n Application Auto Scaling operations. To see which resources have been registered, use DescribeScalableTargets. You can also view the scaling policies for a service\n namespace by using DescribeScalableTargets. If you no longer need a scalable target, you can\n deregister it by using DeregisterScalableTarget.

\n

To update a scalable target, specify the parameters that you want to change. Include the\n parameters that identify the scalable target: resource ID, scalable dimension, and\n namespace. Any parameters that you don't specify are not changed by this update request.

\n \n

If you call the RegisterScalableTarget API to update an existing\n scalable target, Application Auto Scaling retrieves the current capacity of the resource. If it is below\n the minimum capacity or above the maximum capacity, Application Auto Scaling adjusts the capacity of the\n scalable target to place it within these bounds, even if you don't include the\n MinCapacity or MaxCapacity request parameters.

\n
" } }, "com.amazonaws.applicationautoscaling#RegisterScalableTargetRequest": { @@ -1298,14 +1302,14 @@ "ResourceId": { "target": "com.amazonaws.applicationautoscaling#ResourceIdMaxLen1600", "traits": { - "smithy.api#documentation": "

The identifier of the resource that is associated with the scalable target.\n This string consists of the resource type and unique identifier.

\n ", + "smithy.api#documentation": "

The identifier of the resource that is associated with the scalable target.\n This string consists of the resource type and unique identifier.

\n ", "smithy.api#required": {} } }, "ScalableDimension": { "target": "com.amazonaws.applicationautoscaling#ScalableDimension", "traits": { - "smithy.api#documentation": "

The scalable dimension associated with the scalable target.\n This string consists of the service namespace, resource type, and scaling property.

\n ", + "smithy.api#documentation": "

The scalable dimension associated with the scalable target.\n This string consists of the service namespace, resource type, and scaling property.

\n ", "smithy.api#required": {} } }, @@ -1461,6 +1465,10 @@ { "value": "elasticache:replication-group:Replicas", "name": "ElastiCacheReplicationGroupReplicas" + }, + { + "value": "neptune:cluster:ReadReplicaCount", + "name": "NeptuneClusterReadReplicaCount" } ] } @@ -1478,14 +1486,14 @@ "ResourceId": { "target": "com.amazonaws.applicationautoscaling#ResourceIdMaxLen1600", "traits": { - "smithy.api#documentation": "

The identifier of the resource associated with the scalable target.\n This string consists of the resource type and unique identifier.

\n ", + "smithy.api#documentation": "

The identifier of the resource associated with the scalable target.\n This string consists of the resource type and unique identifier.

\n ", "smithy.api#required": {} } }, "ScalableDimension": { "target": "com.amazonaws.applicationautoscaling#ScalableDimension", "traits": { - "smithy.api#documentation": "

The scalable dimension associated with the scalable target.\n This string consists of the service namespace, resource type, and scaling property.

\n ", + "smithy.api#documentation": "

The scalable dimension associated with the scalable target.\n This string consists of the service namespace, resource type, and scaling property.

\n ", "smithy.api#required": {} } }, @@ -1577,14 +1585,14 @@ "ResourceId": { "target": "com.amazonaws.applicationautoscaling#ResourceIdMaxLen1600", "traits": { - "smithy.api#documentation": "

The identifier of the resource associated with the scaling activity.\n This string consists of the resource type and unique identifier.

\n ", + "smithy.api#documentation": "

The identifier of the resource associated with the scaling activity.\n This string consists of the resource type and unique identifier.

\n ", "smithy.api#required": {} } }, "ScalableDimension": { "target": "com.amazonaws.applicationautoscaling#ScalableDimension", "traits": { - "smithy.api#documentation": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

\n ", + "smithy.api#documentation": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

\n ", "smithy.api#required": {} } }, @@ -1709,14 +1717,14 @@ "ResourceId": { "target": "com.amazonaws.applicationautoscaling#ResourceIdMaxLen1600", "traits": { - "smithy.api#documentation": "

The identifier of the resource associated with the scaling policy.\n This string consists of the resource type and unique identifier.

\n ", + "smithy.api#documentation": "

The identifier of the resource associated with the scaling policy.\n This string consists of the resource type and unique identifier.

\n ", "smithy.api#required": {} } }, "ScalableDimension": { "target": "com.amazonaws.applicationautoscaling#ScalableDimension", "traits": { - "smithy.api#documentation": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

\n ", + "smithy.api#documentation": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

\n ", "smithy.api#required": {} } }, @@ -1803,14 +1811,14 @@ "ResourceId": { "target": "com.amazonaws.applicationautoscaling#ResourceIdMaxLen1600", "traits": { - "smithy.api#documentation": "

The identifier of the resource associated with the scaling policy.\n This string consists of the resource type and unique identifier.

\n ", + "smithy.api#documentation": "

The identifier of the resource associated with the scaling policy.\n This string consists of the resource type and unique identifier.

\n ", "smithy.api#required": {} } }, "ScalableDimension": { "target": "com.amazonaws.applicationautoscaling#ScalableDimension", "traits": { - "smithy.api#documentation": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

\n " + "smithy.api#documentation": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

\n " } }, "StartTime": { @@ -1914,6 +1922,10 @@ { "value": "elasticache", "name": "ELASTICACHE" + }, + { + "value": "neptune", + "name": "NEPTUNE" } ] } @@ -1975,7 +1987,7 @@ "Cooldown": { "target": "com.amazonaws.applicationautoscaling#Cooldown", "traits": { - "smithy.api#documentation": "

The amount of time, in seconds, to wait for a previous scaling activity to take effect.

\n

With scale-out policies, the intention is to continuously (but not excessively) scale out.\n After Application Auto Scaling successfully scales out using a step scaling policy, it starts to calculate the\n cooldown time. The scaling policy won't increase the desired capacity again unless either a\n larger scale out is triggered or the cooldown period ends. While the cooldown period is in\n effect, capacity added by the initiating scale-out activity is calculated as part of the\n desired capacity for the next scale-out activity. For example, when an alarm triggers a step\n scaling policy to increase the capacity by 2, the scaling activity completes successfully, and\n a cooldown period starts. If the alarm triggers again during the cooldown period but at a more\n aggressive step adjustment of 3, the previous increase of 2 is considered part of the current\n capacity. Therefore, only 1 is added to the capacity.

\n

With scale-in policies, the intention is to scale in conservatively to protect your\n application’s availability, so scale-in activities are blocked until the cooldown period has\n expired. However, if another alarm triggers a scale-out activity during the cooldown period\n after a scale-in activity, Application Auto Scaling scales out the target immediately. In this case, the\n cooldown period for the scale-in activity stops and doesn't complete.

\n

Application Auto Scaling provides a default value of 600 for Amazon ElastiCache replication groups\n and a default value of 300 for the following scalable targets:

\n \n

For all other scalable targets, the default value is 0:

\n " + "smithy.api#documentation": "

The amount of time, in seconds, to wait for a previous scaling activity to take effect.

\n

With scale-out policies, the intention is to continuously (but not excessively) scale out.\n After Application Auto Scaling successfully scales out using a step scaling policy, it starts to calculate the\n cooldown time. The scaling policy won't increase the desired capacity again unless either a\n larger scale out is triggered or the cooldown period ends. While the cooldown period is in\n effect, capacity added by the initiating scale-out activity is calculated as part of the\n desired capacity for the next scale-out activity. For example, when an alarm triggers a step\n scaling policy to increase the capacity by 2, the scaling activity completes successfully, and\n a cooldown period starts. If the alarm triggers again during the cooldown period but at a more\n aggressive step adjustment of 3, the previous increase of 2 is considered part of the current\n capacity. Therefore, only 1 is added to the capacity.

\n

With scale-in policies, the intention is to scale in conservatively to protect your\n application’s availability, so scale-in activities are blocked until the cooldown period has\n expired. However, if another alarm triggers a scale-out activity during the cooldown period\n after a scale-in activity, Application Auto Scaling scales out the target immediately. In this case, the\n cooldown period for the scale-in activity stops and doesn't complete.

\n

Application Auto Scaling provides a default value of 600 for Amazon ElastiCache replication groups\n and a default value of 300 for the following scalable targets:

\n \n

For all other scalable targets, the default value is 0:

\n " } }, "MetricAggregationType": { @@ -2040,13 +2052,13 @@ "ScaleOutCooldown": { "target": "com.amazonaws.applicationautoscaling#Cooldown", "traits": { - "smithy.api#documentation": "

The amount of time, in seconds, to wait for a previous scale-out activity to take\n effect.

\n

With the scale-out cooldown period, the intention is to continuously\n (but not excessively) scale out. After Application Auto Scaling successfully scales out using a target\n tracking scaling policy, it starts to calculate the cooldown time. The scaling policy won't\n increase the desired capacity again unless either a larger scale out is triggered or the\n cooldown period ends. While the cooldown period is in effect, the capacity added by the\n initiating scale-out activity is calculated as part of the desired capacity for the next\n scale-out activity.

\n

Application Auto Scaling provides a default value of 600 for Amazon ElastiCache replication groups\n and a default value of 300 for the following scalable targets:

\n \n

For all other scalable targets, the default value is 0:

\n " + "smithy.api#documentation": "

The amount of time, in seconds, to wait for a previous scale-out activity to take\n effect.

\n

With the scale-out cooldown period, the intention is to continuously\n (but not excessively) scale out. After Application Auto Scaling successfully scales out using a target\n tracking scaling policy, it starts to calculate the cooldown time. The scaling policy won't\n increase the desired capacity again unless either a larger scale out is triggered or the\n cooldown period ends. While the cooldown period is in effect, the capacity added by the\n initiating scale-out activity is calculated as part of the desired capacity for the next\n scale-out activity.

\n

Application Auto Scaling provides a default value of 600 for Amazon ElastiCache replication groups\n and a default value of 300 for the following scalable targets:

\n \n

For all other scalable targets, the default value is 0:

\n " } }, "ScaleInCooldown": { "target": "com.amazonaws.applicationautoscaling#Cooldown", "traits": { - "smithy.api#documentation": "

The amount of time, in seconds, after a scale-in activity completes before another\n scale-in activity can start.

\n

With the scale-in cooldown period, the intention is to scale in\n conservatively to protect your application’s availability, so scale-in activities are blocked\n until the cooldown period has expired. However, if another alarm triggers a scale-out activity\n during the scale-in cooldown period, Application Auto Scaling scales out the target immediately. In this case,\n the scale-in cooldown period stops and doesn't complete.

\n

Application Auto Scaling provides a default value of 600 for Amazon ElastiCache replication groups\n and a default value of 300 for the following scalable targets:

\n \n

For all other scalable targets, the default value is 0:

\n " + "smithy.api#documentation": "

The amount of time, in seconds, after a scale-in activity completes before another\n scale-in activity can start.

\n

With the scale-in cooldown period, the intention is to scale in\n conservatively to protect your application’s availability, so scale-in activities are blocked\n until the cooldown period has expired. However, if another alarm triggers a scale-out activity\n during the scale-in cooldown period, Application Auto Scaling scales out the target immediately. In this case,\n the scale-in cooldown period stops and doesn't complete.

\n

Application Auto Scaling provides a default value of 600 for Amazon ElastiCache replication groups\n and a default value of 300 for the following scalable targets:

\n \n

For all other scalable targets, the default value is 0:

\n " } }, "DisableScaleIn": { diff --git a/codegen/sdk-codegen/aws-models/apprunner.2020-05-15.json b/codegen/sdk-codegen/aws-models/apprunner.2020-05-15.json index 6d809066dd8..f6f4db01af1 100644 --- a/codegen/sdk-codegen/aws-models/apprunner.2020-05-15.json +++ b/codegen/sdk-codegen/aws-models/apprunner.2020-05-15.json @@ -142,7 +142,7 @@ "name": "apprunner" }, "aws.protocols#awsJson1_0": {}, - "smithy.api#documentation": "AWS App Runner\n\n \n\n

AWS App Runner is an application service that provides a fast, simple, and cost-effective way to go directly from an existing container image or source code\n to a running service in the AWS cloud in seconds. You don't need to learn new technologies, decide which compute service to use, or understand how to\n provision and configure AWS resources.

\n

App Runner connects directly to your container registry or source code repository. It provides an automatic delivery pipeline with fully managed operations,\n high performance, scalability, and security.

\n

For more information about App Runner, see the AWS App Runner Developer Guide.\n For release information, see the AWS App Runner Release Notes.

\n

\n To install the Software Development Kits (SDKs), Integrated\n Development Environment (IDE) Toolkits, and command line tools that you can use to access the API, see Tools for\n Amazon Web Services.

\n

\n Endpoints\n

\n

For a list of Region-specific endpoints that App Runner supports, see AWS App Runner\n endpoints and quotas in the AWS General Reference.

", + "smithy.api#documentation": "App Runner\n\n \n\n

App Runner is an application service that provides a fast, simple, and cost-effective way to go directly from an existing container image or source code\n to a running service in the Amazon Web Services Cloud in seconds. You don't need to learn new technologies, decide which compute service to use, or understand how to\n provision and configure Amazon Web Services resources.

\n

App Runner connects directly to your container registry or source code repository. It provides an automatic delivery pipeline with fully managed operations,\n high performance, scalability, and security.

\n

For more information about App Runner, see the App Runner Developer Guide.\n For release information, see the App Runner Release Notes.

\n

\n To install the Software Development Kits (SDKs), Integrated\n Development Environment (IDE) Toolkits, and command line tools that you can use to access the API, see Tools for\n Amazon Web Services.

\n

\n Endpoints\n

\n

For a list of Region-specific endpoints that App Runner supports, see App Runner\n endpoints and quotas in the Amazon Web Services General Reference.

", "smithy.api#title": "AWS App Runner", "smithy.api#xmlNamespace": { "uri": "http://apprunner.amazonaws.com/doc/2020-05-15/" @@ -156,7 +156,7 @@ "min": 1, "max": 1011 }, - "smithy.api#pattern": "arn:aws(-[\\w]+)*:[a-z0-9-\\\\.]{0,63}:[a-z0-9-\\\\.]{0,63}:[0-9]{12}:(\\w|\\/|-){1,1011}" + "smithy.api#pattern": "^arn:aws(-[\\w]+)*:[a-z0-9-\\\\.]{0,63}:[a-z0-9-\\\\.]{0,63}:[0-9]{12}:(\\w|\\/|-){1,1011}$" } }, "com.amazonaws.apprunner#AssociateCustomDomain": { @@ -179,7 +179,7 @@ } ], "traits": { - "smithy.api#documentation": "

Associate your own domain name with the AWS App Runner subdomain URL of your App Runner service.

\n

After you call AssociateCustomDomain and receive a successful response, use the information in the CustomDomain record\n that's returned to add CNAME records to your Domain Name System (DNS). For each mapped domain name, add a mapping to the target App Runner subdomain and one or\n more certificate validation records. App Runner then performs DNS validation to verify that you own or control the domain name that you associated. App Runner tracks\n domain validity in a certificate stored in AWS Certificate Manager (ACM).

" + "smithy.api#documentation": "

Associate your own domain name with the App Runner subdomain URL of your App Runner service.

\n

After you call AssociateCustomDomain and receive a successful response, use the information in the CustomDomain record\n that's returned to add CNAME records to your Domain Name System (DNS). For each mapped domain name, add a mapping to the target App Runner subdomain and one or\n more certificate validation records. App Runner then performs DNS validation to verify that you own or control the domain name that you associated. App Runner tracks\n domain validity in a certificate stored in AWS Certificate Manager (ACM).

" } }, "com.amazonaws.apprunner#AssociateCustomDomainRequest": { @@ -318,7 +318,7 @@ } }, "traits": { - "smithy.api#documentation": "

Describes an AWS App Runner automatic scaling configuration resource. Multiple revisions of a configuration have the same\n AutoScalingConfigurationName and different AutoScalingConfigurationRevision values.

\n

A higher MinSize increases the spread of your App Runner service over more Availability Zones in the AWS Region. The tradeoff is a higher\n minimal cost.

\n

A lower MaxSize controls your cost. The tradeoff is lower responsiveness during peak demand.

" + "smithy.api#documentation": "

Describes an App Runner automatic scaling configuration resource. Multiple revisions of a configuration have the same\n AutoScalingConfigurationName and different AutoScalingConfigurationRevision values.

\n

A higher MinSize increases the spread of your App Runner service over more Availability Zones in the Amazon Web Services Region. The tradeoff is a higher\n minimal cost.

\n

A lower MaxSize controls your cost. The tradeoff is lower responsiveness during peak demand.

" } }, "com.amazonaws.apprunner#AutoScalingConfigurationName": { @@ -328,7 +328,7 @@ "min": 4, "max": 32 }, - "smithy.api#pattern": "[A-Za-z0-9][A-Za-z0-9\\-_]{3,31}" + "smithy.api#pattern": "^[A-Za-z0-9][A-Za-z0-9\\-_]{3,31}$" } }, "com.amazonaws.apprunner#AutoScalingConfigurationStatus": { @@ -369,7 +369,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides summary information about an AWS App Runner automatic scaling configuration resource.

\n

This type contains limited information about an auto scaling configuration. It includes only identification information, without configuration\n details. It's returned by the ListAutoScalingConfigurations action. Complete configuration information is returned by the CreateAutoScalingConfiguration, DescribeAutoScalingConfiguration, and DeleteAutoScalingConfiguration\n actions using the AutoScalingConfiguration type.

" + "smithy.api#documentation": "

Provides summary information about an App Runner automatic scaling configuration resource.

\n

This type contains limited information about an auto scaling configuration. It includes only identification information, without configuration\n details. It's returned by the ListAutoScalingConfigurations action. Complete configuration information is returned by the CreateAutoScalingConfiguration, DescribeAutoScalingConfiguration, and DeleteAutoScalingConfiguration\n actions using the AutoScalingConfiguration type.

" } }, "com.amazonaws.apprunner#AutoScalingConfigurationSummaryList": { @@ -462,7 +462,7 @@ } }, "traits": { - "smithy.api#documentation": "

Describes the configuration that AWS App Runner uses to build and run an App Runner service from a source code repository.

" + "smithy.api#documentation": "

Describes the configuration that App Runner uses to build and run an App Runner service from a source code repository.

" } }, "com.amazonaws.apprunner#CodeConfigurationValues": { @@ -501,7 +501,7 @@ } }, "traits": { - "smithy.api#documentation": "

Describes the basic configuration needed for building and running an AWS App Runner service. This type doesn't support the full set of possible\n configuration options. Fur full configuration capabilities, use a apprunner.yaml file in the source code repository.

" + "smithy.api#documentation": "

Describes the basic configuration needed for building and running an App Runner service. This type doesn't support the full set of possible\n configuration options. Fur full configuration capabilities, use a apprunner.yaml file in the source code repository.

" } }, "com.amazonaws.apprunner#CodeRepository": { @@ -582,7 +582,7 @@ } }, "traits": { - "smithy.api#documentation": "

Describes an AWS App Runner connection resource.

" + "smithy.api#documentation": "

Describes an App Runner connection resource.

" } }, "com.amazonaws.apprunner#ConnectionName": { @@ -592,7 +592,7 @@ "min": 4, "max": 32 }, - "smithy.api#pattern": "[A-Za-z0-9][A-Za-z0-9\\-_]{3,31}" + "smithy.api#pattern": "^[A-Za-z0-9][A-Za-z0-9\\-_]{3,31}$" } }, "com.amazonaws.apprunner#ConnectionStatus": { @@ -653,7 +653,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides summary information about an AWS App Runner connection resource.

" + "smithy.api#documentation": "

Provides summary information about an App Runner connection resource.

" } }, "com.amazonaws.apprunner#ConnectionSummaryList": { @@ -669,7 +669,7 @@ "min": 4, "max": 6 }, - "smithy.api#pattern": "1024|2048|(1|2) vCPU" + "smithy.api#pattern": "^1024|2048|(1|2) vCPU$" } }, "com.amazonaws.apprunner#CreateAutoScalingConfiguration": { @@ -692,7 +692,7 @@ } ], "traits": { - "smithy.api#documentation": "

Create an AWS App Runner automatic scaling configuration resource. App Runner requires this resource\n when you create App Runner services that require non-default auto scaling settings. You can share an\n auto scaling configuration across multiple services.

\n

Create multiple revisions of a configuration by using the same AutoScalingConfigurationName and different\n AutoScalingConfigurationRevision values. When you create a service, you can set it to use the latest active revision of an auto scaling\n configuration or a specific revision.

\n

Configure a higher MinSize to increase the spread of your App Runner service over more Availability Zones in the AWS Region. The tradeoff is\n a higher minimal cost.

\n

Configure a lower MaxSize to control your cost. The tradeoff is lower responsiveness during peak demand.

" + "smithy.api#documentation": "

Create an App Runner automatic scaling configuration resource. App Runner requires this resource\n when you create App Runner services that require non-default auto scaling settings. You can share an\n auto scaling configuration across multiple services.

\n

Create multiple revisions of a configuration by using the same AutoScalingConfigurationName and different\n AutoScalingConfigurationRevision values. When you create a service, you can set it to use the latest active revision of an auto scaling\n configuration or a specific revision.

\n

Configure a higher MinSize to increase the spread of your App Runner service over more Availability Zones in the Amazon Web Services Region. The tradeoff is\n a higher minimal cost.

\n

Configure a lower MaxSize to control your cost. The tradeoff is lower responsiveness during peak demand.

" } }, "com.amazonaws.apprunner#CreateAutoScalingConfigurationRequest": { @@ -701,7 +701,7 @@ "AutoScalingConfigurationName": { "target": "com.amazonaws.apprunner#AutoScalingConfigurationName", "traits": { - "smithy.api#documentation": "

A name for the auto scaling configuration. When you use it for the first time in an AWS Region, App Runner creates revision number 1 of this\n name. When you use the same name in subsequent calls, App Runner creates incremental revisions of the configuration.

", + "smithy.api#documentation": "

A name for the auto scaling configuration. When you use it for the first time in an Amazon Web Services Region, App Runner creates revision number 1 of this\n name. When you use the same name in subsequent calls, App Runner creates incremental revisions of the configuration.

", "smithy.api#required": {} } }, @@ -763,7 +763,7 @@ } ], "traits": { - "smithy.api#documentation": "

Create an AWS App Runner connection resource. App Runner requires a connection resource when you create App Runner services that access private repositories from\n certain third-party providers. You can share a connection across multiple services.

\n

A connection resource is needed to access GitHub repositories. GitHub requires a user interface approval process through the App Runner console before you\n can use the connection.

" + "smithy.api#documentation": "

Create an App Runner connection resource. App Runner requires a connection resource when you create App Runner services that access private repositories from\n certain third-party providers. You can share a connection across multiple services.

\n

A connection resource is needed to access GitHub repositories. GitHub requires a user interface approval process through the App Runner console before you\n can use the connection.

" } }, "com.amazonaws.apprunner#CreateConnectionRequest": { @@ -772,7 +772,7 @@ "ConnectionName": { "target": "com.amazonaws.apprunner#ConnectionName", "traits": { - "smithy.api#documentation": "

A name for the new connection. It must be unique across all App Runner connections for the AWS account in the AWS Region.

", + "smithy.api#documentation": "

A name for the new connection. It must be unique across all App Runner connections for the Amazon Web Services account in the Amazon Web Services Region.

", "smithy.api#required": {} } }, @@ -823,7 +823,7 @@ } ], "traits": { - "smithy.api#documentation": "

Create an AWS App Runner service. After the service is created, the action also automatically starts a deployment.

\n

This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations call to track the operation's progress.

" + "smithy.api#documentation": "

Create an App Runner service. After the service is created, the action also automatically starts a deployment.

\n

This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations call to track the operation's progress.

" } }, "com.amazonaws.apprunner#CreateServiceRequest": { @@ -832,7 +832,7 @@ "ServiceName": { "target": "com.amazonaws.apprunner#ServiceName", "traits": { - "smithy.api#documentation": "

A name for the new service. It must be unique across all the running App Runner services in your AWS account in the AWS Region.

", + "smithy.api#documentation": "

A name for the new service. It must be unique across all the running App Runner services in your Amazon Web Services account in the Amazon Web Services Region.

", "smithy.api#required": {} } }, @@ -858,13 +858,13 @@ "EncryptionConfiguration": { "target": "com.amazonaws.apprunner#EncryptionConfiguration", "traits": { - "smithy.api#documentation": "

An optional custom encryption key that App Runner uses to encrypt the copy of your source repository that it maintains and your service logs. By default,\n App Runner uses an AWS managed CMK.

" + "smithy.api#documentation": "

An optional custom encryption key that App Runner uses to encrypt the copy of your source repository that it maintains and your service logs. By default,\n App Runner uses an Amazon Web Services managed CMK.

" } }, "HealthCheckConfiguration": { "target": "com.amazonaws.apprunner#HealthCheckConfiguration", "traits": { - "smithy.api#documentation": "

The settings for the health check that AWS App Runner performs to monitor the health of your service.

" + "smithy.api#documentation": "

The settings for the health check that App Runner performs to monitor the health of your service.

" } }, "AutoScalingConfigurationArn": { @@ -926,7 +926,7 @@ } }, "traits": { - "smithy.api#documentation": "

Describes a custom domain that's associated with an AWS App Runner service.

" + "smithy.api#documentation": "

Describes a custom domain that's associated with an App Runner service.

" } }, "com.amazonaws.apprunner#CustomDomainAssociationStatus": { @@ -990,7 +990,7 @@ } ], "traits": { - "smithy.api#documentation": "

Delete an AWS App Runner automatic scaling configuration resource. You can delete a specific revision or the latest active revision. You can't delete a\n configuration that's used by one or more App Runner services.

" + "smithy.api#documentation": "

Delete an App Runner automatic scaling configuration resource. You can delete a specific revision or the latest active revision. You can't delete a\n configuration that's used by one or more App Runner services.

" } }, "com.amazonaws.apprunner#DeleteAutoScalingConfigurationRequest": { @@ -1037,7 +1037,7 @@ } ], "traits": { - "smithy.api#documentation": "

Delete an AWS App Runner connection. You must first ensure that there are no running App Runner services that use this connection. If there are any, the\n DeleteConnection action fails.

" + "smithy.api#documentation": "

Delete an App Runner connection. You must first ensure that there are no running App Runner services that use this connection. If there are any, the\n DeleteConnection action fails.

" } }, "com.amazonaws.apprunner#DeleteConnectionRequest": { @@ -1086,7 +1086,7 @@ } ], "traits": { - "smithy.api#documentation": "

Delete an AWS App Runner service.

\n

This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations\n call to track the operation's progress.

" + "smithy.api#documentation": "

Delete an App Runner service.

\n

This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations\n call to track the operation's progress.

" } }, "com.amazonaws.apprunner#DeleteServiceRequest": { @@ -1140,7 +1140,7 @@ } ], "traits": { - "smithy.api#documentation": "

Return a full description of an AWS App Runner automatic scaling configuration resource.

" + "smithy.api#documentation": "

Return a full description of an App Runner automatic scaling configuration resource.

" } }, "com.amazonaws.apprunner#DescribeAutoScalingConfigurationRequest": { @@ -1187,7 +1187,7 @@ } ], "traits": { - "smithy.api#documentation": "

Return a description of custom domain names that are associated with an AWS App Runner service.

", + "smithy.api#documentation": "

Return a description of custom domain names that are associated with an App Runner service.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -1281,7 +1281,7 @@ } ], "traits": { - "smithy.api#documentation": "

Return a full description of an AWS App Runner service.

" + "smithy.api#documentation": "

Return a full description of an App Runner service.

" } }, "com.amazonaws.apprunner#DescribeServiceRequest": { @@ -1331,7 +1331,7 @@ } ], "traits": { - "smithy.api#documentation": "

Disassociate a custom domain name from an AWS App Runner service.

\n

Certificates tracking domain validity are associated with a custom domain and are stored in AWS\n Certificate Manager (ACM). These certificates aren't deleted as part of this action. App Runner delays certificate deletion for\n 30 days after a domain is disassociated from your service.

" + "smithy.api#documentation": "

Disassociate a custom domain name from an App Runner service.

\n

Certificates tracking domain validity are associated with a custom domain and are stored in AWS\n Certificate Manager (ACM). These certificates aren't deleted as part of this action. App Runner delays certificate deletion for\n 30 days after a domain is disassociated from your service.

" } }, "com.amazonaws.apprunner#DisassociateCustomDomainRequest": { @@ -1400,7 +1400,7 @@ } }, "traits": { - "smithy.api#documentation": "

Describes a custom encryption key that AWS App Runner uses to encrypt copies of the source repository and service logs.

" + "smithy.api#documentation": "

Describes a custom encryption key that App Runner uses to encrypt copies of the source repository and service logs.

" } }, "com.amazonaws.apprunner#ErrorMessage": { @@ -1422,7 +1422,7 @@ } }, "Path": { - "target": "com.amazonaws.apprunner#String", + "target": "com.amazonaws.apprunner#HealthCheckPath", "traits": { "smithy.api#documentation": "

The URL that health check requests are sent to.

\n

\n Path is only applicable when you set Protocol to HTTP.

\n

Default: \"/\"\n

" } @@ -1442,18 +1442,18 @@ "HealthyThreshold": { "target": "com.amazonaws.apprunner#HealthCheckHealthyThreshold", "traits": { - "smithy.api#documentation": "

The number of consecutive checks that must succeed before App Runner decides that the service is healthy.

\n

Default: 3\n

" + "smithy.api#documentation": "

The number of consecutive checks that must succeed before App Runner decides that the service is healthy.

\n

Default: 1\n

" } }, "UnhealthyThreshold": { "target": "com.amazonaws.apprunner#HealthCheckUnhealthyThreshold", "traits": { - "smithy.api#documentation": "

The number of consecutive checks that must fail before App Runner decides that the service is unhealthy.

\n

Default: 3\n

" + "smithy.api#documentation": "

The number of consecutive checks that must fail before App Runner decides that the service is unhealthy.

\n

Default: 5\n

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

Describes the settings for the health check that AWS App Runner performs to monitor the health of a service.

" + "smithy.api#documentation": "

Describes the settings for the health check that App Runner performs to monitor the health of a service.

" } }, "com.amazonaws.apprunner#HealthCheckHealthyThreshold": { @@ -1476,6 +1476,14 @@ } } }, + "com.amazonaws.apprunner#HealthCheckPath": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, "com.amazonaws.apprunner#HealthCheckProtocol": { "type": "string", "traits": { @@ -1534,7 +1542,7 @@ } }, "traits": { - "smithy.api#documentation": "

Describes the configuration that AWS App Runner uses to run an App Runner service using an image pulled from a source image repository.

" + "smithy.api#documentation": "

Describes the configuration that App Runner uses to run an App Runner service using an image pulled from a source image repository.

" } }, "com.amazonaws.apprunner#ImageIdentifier": { @@ -1544,7 +1552,7 @@ "min": 1, "max": 1024 }, - "smithy.api#pattern": "([0-9]{12}.dkr.ecr.[a-z\\-]+-[0-9]{1}.amazonaws.com\\/.*)|(^public\\.ecr\\.aws\\/.+\\/.+)" + "smithy.api#pattern": "^([0-9]{12}.dkr.ecr.[a-z\\-]+-[0-9]{1}.amazonaws.com\\/((?:[a-z0-9]+(?:[._-][a-z0-9]+)*\\/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)(:([\\w\\d+\\-=._:\\/@])+|@([\\w\\d\\:]+))?)|(^public\\.ecr\\.aws\\/.+\\/((?:[a-z0-9]+(?:[._-][a-z0-9]+)*\\/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)(:([\\w\\d+\\-=._:\\/@])+|@([\\w\\d\\:]+))?)$" } }, "com.amazonaws.apprunner#ImageRepository": { @@ -1608,12 +1616,12 @@ "InstanceRoleArn": { "target": "com.amazonaws.apprunner#RoleArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM role that provides permissions to your App Runner service. These are permissions that your code needs when it calls\n any AWS APIs.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM role that provides permissions to your App Runner service. These are permissions that your code needs when it calls\n any Amazon Web Services APIs.

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

Describes the runtime configuration of an AWS App Runner service instance (scaling unit).

" + "smithy.api#documentation": "

Describes the runtime configuration of an App Runner service instance (scaling unit).

" } }, "com.amazonaws.apprunner#Integer": { @@ -1627,6 +1635,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InternalServiceError", + "httpResponseCode": 500 + }, "smithy.api#documentation": "

An unexpected service exception occurred.

", "smithy.api#error": "server", "smithy.api#httpError": 500 @@ -1640,6 +1652,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidRequest", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

One or more input parameters aren't valid. Refer to the API action's document page, correct the input parameters, and try the action again.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -1653,6 +1669,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidState", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

You can't perform this action when the resource is in its current state.

", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -1665,7 +1685,7 @@ "min": 0, "max": 256 }, - "smithy.api#pattern": "arn:aws(-[\\w]+)*:kms:[a-z\\-]+-[0-9]{1}:[0-9]{12}:key\\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + "smithy.api#pattern": "^arn:aws(-[\\w]+)*:kms:[a-z\\-]+-[0-9]{1}:[0-9]{12}:key\\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" } }, "com.amazonaws.apprunner#ListAutoScalingConfigurations": { @@ -1685,7 +1705,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a list of AWS App Runner automatic scaling configurations in your AWS account. You can query the revisions for a specific configuration name or\n the revisions for all configurations in your account. You can optionally query only the latest revision of each requested name.

", + "smithy.api#documentation": "

Returns a list of App Runner automatic scaling configurations in your Amazon Web Services account. You can query the revisions for a specific configuration name or\n the revisions for all configurations in your account. You can optionally query only the latest revision of each requested name.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -1757,7 +1777,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a list of AWS App Runner connections that are associated with your AWS account.

", + "smithy.api#documentation": "

Returns a list of App Runner connections that are associated with your Amazon Web Services account.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -1826,7 +1846,7 @@ } ], "traits": { - "smithy.api#documentation": "

Return a list of operations that occurred on an AWS App Runner service.

\n

The resulting list of OperationSummary objects is sorted in reverse chronological order. The first object on the list represents the\n last started operation.

", + "smithy.api#documentation": "

Return a list of operations that occurred on an App Runner service.

\n

The resulting list of OperationSummary objects is sorted in reverse chronological order. The first object on the list represents the\n last started operation.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -1902,7 +1922,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a list of running AWS App Runner services in your AWS account.

", + "smithy.api#documentation": "

Returns a list of running App Runner services in your Amazon Web Services account.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -1968,7 +1988,7 @@ } ], "traits": { - "smithy.api#documentation": "

List tags that are associated with for an AWS App Runner resource. The response contains a list of tag key-value pairs.

" + "smithy.api#documentation": "

List tags that are associated with for an App Runner resource. The response contains a list of tag key-value pairs.

" } }, "com.amazonaws.apprunner#ListTagsForResourceRequest": { @@ -2011,7 +2031,7 @@ "min": 4, "max": 4 }, - "smithy.api#pattern": "2048|3072|4096|(2|3|4) GB" + "smithy.api#pattern": "^2048|3072|4096|(2|3|4) GB$" } }, "com.amazonaws.apprunner#NextToken": { @@ -2112,7 +2132,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides summary information for an operation that occurred on an AWS App Runner service.

" + "smithy.api#documentation": "

Provides summary information for an operation that occurred on an App Runner service.

" } }, "com.amazonaws.apprunner#OperationSummaryList": { @@ -2171,7 +2191,7 @@ } ], "traits": { - "smithy.api#documentation": "

Pause an active AWS App Runner service. App Runner reduces compute capacity for the service to zero and loses state (for example, ephemeral storage is\n removed).

\n

This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations\n call to track the operation's progress.

" + "smithy.api#documentation": "

Pause an active App Runner service. App Runner reduces compute capacity for the service to zero and loses state (for example, ephemeral storage is\n removed).

\n

This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations\n call to track the operation's progress.

" } }, "com.amazonaws.apprunner#PauseServiceRequest": { @@ -2223,7 +2243,11 @@ } }, "traits": { - "smithy.api#documentation": "

A resource doesn't exist for the specified Amazon Resource Name (ARN) in your AWS account.

", + "aws.protocols#awsQueryError": { + "code": "ResourceNotfound", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

A resource doesn't exist for the specified Amazon Resource Name (ARN) in your Amazon Web Services account.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -2251,7 +2275,7 @@ } ], "traits": { - "smithy.api#documentation": "

Resume an active AWS App Runner service. App Runner provisions compute capacity for the service.

\n

This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations\n call to track the operation's progress.

" + "smithy.api#documentation": "

Resume an active App Runner service. App Runner provisions compute capacity for the service.

\n

This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations\n call to track the operation's progress.

" } }, "com.amazonaws.apprunner#ResumeServiceRequest": { @@ -2289,9 +2313,9 @@ "traits": { "smithy.api#length": { "min": 29, - "max": 102 + "max": 1024 }, - "smithy.api#pattern": "arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):iam::[0-9]{12}:role/[\\w+=,.@-]{1,64}" + "smithy.api#pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):iam::[0-9]{12}:(role|role\\/service-role)\\/[\\w+=,.@\\-/]{1,1000}$" } }, "com.amazonaws.apprunner#Runtime": { @@ -2343,7 +2367,7 @@ "ServiceId": { "target": "com.amazonaws.apprunner#ServiceId", "traits": { - "smithy.api#documentation": "

An ID that App Runner generated for this service. It's unique within the AWS Region.

", + "smithy.api#documentation": "

An ID that App Runner generated for this service. It's unique within the Amazon Web Services Region.

", "smithy.api#required": {} } }, @@ -2405,7 +2429,7 @@ "EncryptionConfiguration": { "target": "com.amazonaws.apprunner#EncryptionConfiguration", "traits": { - "smithy.api#documentation": "

The encryption key that App Runner uses to encrypt the service logs and the copy of the source repository that App Runner maintains for the service. It can be\n either a customer-provided encryption key or an AWS managed CMK.

" + "smithy.api#documentation": "

The encryption key that App Runner uses to encrypt the service logs and the copy of the source repository that App Runner maintains for the service. It can be\n either a customer-provided encryption key or an Amazon Web Services managed CMK.

" } }, "HealthCheckConfiguration": { @@ -2423,7 +2447,7 @@ } }, "traits": { - "smithy.api#documentation": "

Describes an AWS App Runner service. It can describe a service in any state, including deleted services.

\n

This type contains the full information about a service, including configuration details. It's returned by the CreateService, DescribeService, and DeleteService actions. A subset of this\n information is returned by the ListServices action using the ServiceSummary type.

" + "smithy.api#documentation": "

Describes an App Runner service. It can describe a service in any state, including deleted services.

\n

This type contains the full information about a service, including configuration details. It's returned by the CreateService, DescribeService, and DeleteService actions. A subset of this\n information is returned by the ListServices action using the ServiceSummary type.

" } }, "com.amazonaws.apprunner#ServiceId": { @@ -2433,7 +2457,7 @@ "min": 32, "max": 32 }, - "smithy.api#pattern": "[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}" + "smithy.api#pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$" } }, "com.amazonaws.apprunner#ServiceMaxResults": { @@ -2453,7 +2477,7 @@ "min": 4, "max": 40 }, - "smithy.api#pattern": "[A-Za-z0-9][A-Za-z0-9-_]{3,39}" + "smithy.api#pattern": "^[A-Za-z0-9][A-Za-z0-9-_]{3,39}$" } }, "com.amazonaws.apprunner#ServiceQuotaExceededException": { @@ -2464,7 +2488,11 @@ } }, "traits": { - "smithy.api#documentation": "

App Runner can't create this resource. You've reached your account quota for this resource type.

\n

For App Runner per-resource quotas, see AWS App Runner endpoints and quotas in the\n AWS General Reference.

", + "aws.protocols#awsQueryError": { + "code": "ServiceQuotaExceeded", + "httpResponseCode": 402 + }, + "smithy.api#documentation": "

App Runner can't create this resource. You've reached your account quota for this resource type.

\n

For App Runner per-resource quotas, see App Runner endpoints and quotas in the\n Amazon Web Services General Reference.

", "smithy.api#error": "client", "smithy.api#httpError": 402 } @@ -2512,7 +2540,7 @@ "ServiceId": { "target": "com.amazonaws.apprunner#ServiceId", "traits": { - "smithy.api#documentation": "

An ID that App Runner generated for this service. It's unique within the AWS Region.

" + "smithy.api#documentation": "

An ID that App Runner generated for this service. It's unique within the Amazon Web Services Region.

" } }, "ServiceArn": { @@ -2547,7 +2575,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides summary information for an AWS App Runner service.

\n

This type contains limited information about a service. It doesn't include configuration details. It's returned by the ListServices action. Complete service information is returned by the CreateService, DescribeService, and DeleteService actions using the Service type.

" + "smithy.api#documentation": "

Provides summary information for an App Runner service.

\n

This type contains limited information about a service. It doesn't include configuration details. It's returned by the ListServices action. Complete service information is returned by the CreateService, DescribeService, and DeleteService actions using the Service type.

" } }, "com.amazonaws.apprunner#ServiceSummaryList": { @@ -2575,7 +2603,7 @@ } }, "traits": { - "smithy.api#documentation": "

Identifies a version of code that AWS App Runner refers to within a source code repository.

" + "smithy.api#documentation": "

Identifies a version of code that App Runner refers to within a source code repository.

" } }, "com.amazonaws.apprunner#SourceCodeVersionType": { @@ -2607,7 +2635,7 @@ "AutoDeploymentsEnabled": { "target": "com.amazonaws.apprunner#NullableBoolean", "traits": { - "smithy.api#documentation": "

If true, continuous integration from the source repository is enabled for the App Runner service. Each repository change (source code commit or\n new image version) starts a deployment.

\n

Default: true\n

" + "smithy.api#documentation": "

If true, continuous integration from the source repository is enabled for the App Runner service. Each repository change (including any source\n code commit or new image version) starts a deployment.

\n

Default: App Runner sets to false for a source image that uses an ECR Public repository or an ECR repository that's in an Amazon Web Services account other than the one that the service is in. App Runner sets to true in all other cases (which currently include a source code\n repository or a source image using a same-account ECR repository).

" } }, "AuthenticationConfiguration": { @@ -2618,7 +2646,7 @@ } }, "traits": { - "smithy.api#documentation": "

Describes the source deployed to an AWS App Runner service. It can be a code or an image repository.

" + "smithy.api#documentation": "

Describes the source deployed to an App Runner service. It can be a code or an image repository.

" } }, "com.amazonaws.apprunner#StartCommand": { @@ -2647,7 +2675,7 @@ } ], "traits": { - "smithy.api#documentation": "

Initiate a manual deployment of the latest commit in a source code repository or the latest image in a source image repository to an AWS App Runner\n service.

\n

For a source code repository, App Runner retrieves the commit and builds a Docker image. For a source image repository, App Runner retrieves the latest Docker\n image. In both cases, App Runner then deploys the new image to your service and starts a new container instance.

\n

This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations\n call to track the operation's progress.

" + "smithy.api#documentation": "

Initiate a manual deployment of the latest commit in a source code repository or the latest image in a source image repository to an App Runner\n service.

\n

For a source code repository, App Runner retrieves the commit and builds a Docker image. For a source image repository, App Runner retrieves the latest Docker\n image. In both cases, App Runner then deploys the new image to your service and starts a new container instance.

\n

This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations\n call to track the operation's progress.

" } }, "com.amazonaws.apprunner#StartDeploymentRequest": { @@ -2701,7 +2729,7 @@ } }, "traits": { - "smithy.api#documentation": "

Describes a tag that is applied to an AWS App Runner resource. A tag is a metadata item consisting of a key-value pair.

" + "smithy.api#documentation": "

Describes a tag that is applied to an App Runner resource. A tag is a metadata item consisting of a key-value pair.

" } }, "com.amazonaws.apprunner#TagKey": { @@ -2711,7 +2739,7 @@ "min": 1, "max": 128 }, - "smithy.api#pattern": "^(?!aws:).+" + "smithy.api#pattern": "^(?!aws:).+$" } }, "com.amazonaws.apprunner#TagKeyList": { @@ -2795,7 +2823,7 @@ "min": 36, "max": 36 }, - "smithy.api#pattern": "[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}" + "smithy.api#pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$" } }, "com.amazonaws.apprunner#UntagResource": { @@ -2870,7 +2898,7 @@ } ], "traits": { - "smithy.api#documentation": "

Update an AWS App Runner service. You can update the source configuration and instance configuration of the service. You can also update the ARN of the auto\n scaling configuration resource that's associated with the service. However, you can't change the name or the encryption configuration of the service.\n These can be set only when you create the service.

\n

To update the tags applied to your service, use the separate actions TagResource and UntagResource.

\n

This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations\n call to track the operation's progress.

" + "smithy.api#documentation": "

Update an App Runner service. You can update the source configuration and instance configuration of the service. You can also update the ARN of the auto\n scaling configuration resource that's associated with the service. However, you can't change the name or the encryption configuration of the service.\n These can be set only when you create the service.

\n

To update the tags applied to your service, use the separate actions TagResource and UntagResource.

\n

This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations\n call to track the operation's progress.

" } }, "com.amazonaws.apprunner#UpdateServiceRequest": { @@ -2904,7 +2932,7 @@ "HealthCheckConfiguration": { "target": "com.amazonaws.apprunner#HealthCheckConfiguration", "traits": { - "smithy.api#documentation": "

The settings for the health check that AWS App Runner performs to monitor the health of your service.

" + "smithy.api#documentation": "

The settings for the health check that App Runner performs to monitor the health of your service.

" } } } diff --git a/codegen/sdk-codegen/aws-models/backup.2018-11-15.json b/codegen/sdk-codegen/aws-models/backup.2018-11-15.json index 67fc89b461d..076488fdb96 100644 --- a/codegen/sdk-codegen/aws-models/backup.2018-11-15.json +++ b/codegen/sdk-codegen/aws-models/backup.2018-11-15.json @@ -350,7 +350,7 @@ } }, "traits": { - "smithy.api#documentation": "

Contains an optional backup plan display name and an array of BackupRule\n objects, each of which specifies a backup rule. Each rule in a backup plan is a separate\n scheduled task and can back up a different selection of Amazon Web Services resources.\n

" + "smithy.api#documentation": "

Contains an optional backup plan display name and an array of BackupRule\n objects, each of which specifies a backup rule. Each rule in a backup plan is a separate\n scheduled task.

" } }, "com.amazonaws.backup#BackupPlanName": { @@ -815,6 +815,30 @@ "traits": { "smithy.api#documentation": "

The number of recovery points that are stored in a backup vault.

" } + }, + "Locked": { + "target": "com.amazonaws.backup#Boolean", + "traits": { + "smithy.api#documentation": "

A Boolean value that indicates whether Backup Vault Lock applies to the\n selected backup vault. If true, Vault Lock prevents delete and update\n operations on the recovery points in the selected vault.

" + } + }, + "MinRetentionDays": { + "target": "com.amazonaws.backup#Long", + "traits": { + "smithy.api#documentation": "

The Backup Vault Lock setting that specifies the minimum retention period\n that the vault retains its recovery points. If this parameter is not specified, Vault Lock\n does not enforce a minimum retention period.

\n

If specified, any backup or copy job to the vault must have a lifecycle policy with a\n retention period equal to or longer than the minimum retention period. If the job's\n retention period is shorter than that minimum retention period, then the vault fails the\n backup or copy job, and you should either modify your lifecycle settings or use a different\n vault. Recovery points already stored in the vault prior to Vault Lock are not\n affected.

" + } + }, + "MaxRetentionDays": { + "target": "com.amazonaws.backup#Long", + "traits": { + "smithy.api#documentation": "

The Backup Vault Lock setting that specifies the maximum retention period\n that the vault retains its recovery points. If this parameter is not specified, Vault Lock\n does not enforce a maximum retention period on the recovery points in the vault (allowing\n indefinite storage).

\n

If specified, any backup or copy job to the vault must have a lifecycle policy with a\n retention period equal to or shorter than the maximum retention period. If the job's\n retention period is longer than that maximum retention period, then the vault fails the\n backup or copy job, and you should either modify your lifecycle settings or use a different\n vault. Recovery points already stored in the vault prior to Vault Lock are not\n affected.

" + } + }, + "LockDate": { + "target": "com.amazonaws.backup#timestamp", + "traits": { + "smithy.api#documentation": "

The date and time when Backup Vault Lock configuration becomes immutable,\n meaning it cannot be changed or deleted.

\n

If you applied Vault Lock to your vault without specifying a lock date, you can change\n your Vault Lock settings, or delete Vault Lock from the vault entirely, at any time.

\n

This value is in Unix format, Coordinated Universal Time (UTC), and accurate to\n milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018\n 12:11:30.087 AM.

" + } } }, "traits": { @@ -924,10 +948,16 @@ "target": "com.amazonaws.backup#string" }, "Type": { - "target": "com.amazonaws.backup#string" + "target": "com.amazonaws.backup#string", + "traits": { + "smithy.api#documentation": "

" + } }, "Context": { - "target": "com.amazonaws.backup#string" + "target": "com.amazonaws.backup#string", + "traits": { + "smithy.api#documentation": "

" + } } }, "traits": { @@ -975,7 +1005,7 @@ "ComplianceResourceIds": { "target": "com.amazonaws.backup#ComplianceResourceIdList", "traits": { - "smithy.api#documentation": "

Describes whether the control scope includes a specific resource identified by its\n unique Amazon Resource Name (ARN).

" + "smithy.api#documentation": "

The ID of the only Amazon Web Services resource that you want your control scope to\n contain.

" } }, "ComplianceResourceTypes": { @@ -1436,7 +1466,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a framework with one or more controls. A framework is a collection of controls\n that you can use to evaluate your backup practices. By using pre-built customizable\n controls to define your policies, you can evaluate whether your backup practices comply\n with your policies. To get insights into the compliance status of your frameworks, you can\n set up automatic daily reports.

", + "smithy.api#documentation": "

Creates a framework with one or more controls. A framework is a collection of controls\n that you can use to evaluate your backup practices. By using pre-built customizable\n controls to define your policies, you can evaluate whether your backup practices comply\n with your policies and which resources are not yet in compliance.

", "smithy.api#http": { "method": "POST", "uri": "/audit/frameworks", @@ -1561,14 +1591,14 @@ "ReportSetting": { "target": "com.amazonaws.backup#ReportSetting", "traits": { - "smithy.api#documentation": "

Identifies the report template for the report. Reports are built using a report\n template. The report templates are:

\n

\n BACKUP_JOB_REPORT | COPY_JOB_REPORT | RESTORE_JOB_REPORT\n

", + "smithy.api#documentation": "

Identifies the report template for the report. Reports are built using a report\n template. The report templates are:

\n

\n RESOURCE_COMPLIANCE_REPORT | CONTROL_COMPLIANCE_REPORT | BACKUP_JOB_REPORT |\n COPY_JOB_REPORT | RESTORE_JOB_REPORT\n

\n

If the report template is RESOURCE_COMPLIANCE_REPORT or\n CONTROL_COMPLIANCE_REPORT, this API resource also describes the report\n coverage by Amazon Web Services Regions and frameworks.

", "smithy.api#required": {} } }, "ReportPlanTags": { "target": "com.amazonaws.backup#stringMap", "traits": { - "smithy.api#documentation": "

Metadata that you can assign to help organize the frameworks that you create. Each tag\n is a key-value pair.

" + "smithy.api#documentation": "

Metadata that you can assign to help organize the report plans that you create. Each tag\n is a key-value pair.

" } }, "IdempotencyToken": { @@ -1594,6 +1624,12 @@ "traits": { "smithy.api#documentation": "

An Amazon Resource Name (ARN) that uniquely identifies a resource. The format of the ARN\n depends on the resource type.

" } + }, + "CreationTime": { + "target": "com.amazonaws.backup#timestamp", + "traits": { + "smithy.api#documentation": "

The date and time a backup vault is created, in Unix format and Coordinated Universal\n Time (UTC). The value of CreationTime is accurate to milliseconds. For\n example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087\n AM.

" + } } } }, @@ -1631,6 +1667,9 @@ { "target": "com.amazonaws.backup#DeleteBackupVaultAccessPolicy" }, + { + "target": "com.amazonaws.backup#DeleteBackupVaultLockConfiguration" + }, { "target": "com.amazonaws.backup#DeleteBackupVaultNotifications" }, @@ -1754,6 +1793,9 @@ { "target": "com.amazonaws.backup#PutBackupVaultAccessPolicy" }, + { + "target": "com.amazonaws.backup#PutBackupVaultLockConfiguration" + }, { "target": "com.amazonaws.backup#PutBackupVaultNotifications" }, @@ -2024,6 +2066,51 @@ } } }, + "com.amazonaws.backup#DeleteBackupVaultLockConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.backup#DeleteBackupVaultLockConfigurationInput" + }, + "errors": [ + { + "target": "com.amazonaws.backup#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.backup#InvalidRequestException" + }, + { + "target": "com.amazonaws.backup#MissingParameterValueException" + }, + { + "target": "com.amazonaws.backup#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.backup#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes Backup Vault Lock from a backup vault specified by a backup vault\n name.

\n

If the Vault Lock configuration is immutable, then you cannot delete Vault Lock using\n API operations, and you will receive an InvalidRequestException if you attempt\n to do so. For more information, see Vault Lock in the\n Backup Developer Guide.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/backup-vaults/{BackupVaultName}/vault-lock", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.backup#DeleteBackupVaultLockConfigurationInput": { + "type": "structure", + "members": { + "BackupVaultName": { + "target": "com.amazonaws.backup#BackupVaultName", + "traits": { + "smithy.api#documentation": "

The name of the backup vault from which to delete Backup Vault Lock.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.backup#DeleteBackupVaultNotifications": { "type": "operation", "input": { @@ -2494,6 +2581,30 @@ "traits": { "smithy.api#documentation": "

The number of recovery points that are stored in a backup vault.

" } + }, + "Locked": { + "target": "com.amazonaws.backup#Boolean", + "traits": { + "smithy.api#documentation": "

A Boolean that indicates whether Backup Vault Lock is currently protecting\n the backup vault. True means that Vault Lock causes delete or update\n operations on the recovery points stored in the vault to fail.

" + } + }, + "MinRetentionDays": { + "target": "com.amazonaws.backup#Long", + "traits": { + "smithy.api#documentation": "

The Backup Vault Lock setting that specifies the minimum retention period\n that the vault retains its recovery points. If this parameter is not specified, Vault Lock\n does not enforce a minimum retention period.

\n

If specified, any backup or copy job to the vault must have a lifecycle policy with a\n retention period equal to or longer than the minimum retention period. If the job's\n retention period is shorter than that minimum retention period, then the vault fails the\n backup or copy job, and you should either modify your lifecycle settings or use a different\n vault. Recovery points already stored in the vault prior to Vault Lock are not\n affected.

" + } + }, + "MaxRetentionDays": { + "target": "com.amazonaws.backup#Long", + "traits": { + "smithy.api#documentation": "

The Backup Vault Lock setting that specifies the maximum retention period\n that the vault retains its recovery points. If this parameter is not specified, Vault Lock\n does not enforce a maximum retention period on the recovery points in the vault (allowing\n indefinite storage).

\n

If specified, any backup or copy job to the vault must have a lifecycle policy with a\n retention period equal to or shorter than the maximum retention period. If the job's\n retention period is longer than that maximum retention period, then the vault fails the\n backup or copy job, and you should either modify your lifecycle settings or use a different\n vault. Recovery points already stored in the vault prior to Vault Lock are not\n affected.

" + } + }, + "LockDate": { + "target": "com.amazonaws.backup#timestamp", + "traits": { + "smithy.api#documentation": "

The date and time when Backup Vault Lock configuration cannot be changed or\n deleted.

\n

If you applied Vault Lock to your vault without specifying a lock date, you can change\n any of your Vault Lock settings, or delete Vault Lock from the vault entirely, at any\n time.

\n

This value is in Unix format, Coordinated Universal Time (UTC), and accurate to\n milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018\n 12:11:30.087 AM.

" + } } } }, @@ -3984,7 +4095,7 @@ "ResourceTypes": { "target": "com.amazonaws.backup#ResourceTypes", "traits": { - "smithy.api#documentation": "

Contains a string with the supported Amazon Web Services resource types:

\n " + "smithy.api#documentation": "

Contains a string with the supported Amazon Web Services resource types:

\n " } } } @@ -5597,6 +5708,69 @@ } } }, + "com.amazonaws.backup#PutBackupVaultLockConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.backup#PutBackupVaultLockConfigurationInput" + }, + "errors": [ + { + "target": "com.amazonaws.backup#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.backup#InvalidRequestException" + }, + { + "target": "com.amazonaws.backup#MissingParameterValueException" + }, + { + "target": "com.amazonaws.backup#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.backup#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

Applies Backup Vault Lock to a backup vault, preventing attempts to delete\n any recovery point stored in or created in a backup vault. Vault Lock also prevents\n attempts to update the lifecycle policy that controls the retention period of any recovery\n point currently stored in a backup vault. If specified, Vault Lock enforces a minimum and\n maximum retention period for future backup and copy jobs that target a backup vault.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/backup-vaults/{BackupVaultName}/vault-lock", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.backup#PutBackupVaultLockConfigurationInput": { + "type": "structure", + "members": { + "BackupVaultName": { + "target": "com.amazonaws.backup#BackupVaultName", + "traits": { + "smithy.api#documentation": "

The Backup Vault Lock configuration that specifies the name of the backup\n vault it protects.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "MinRetentionDays": { + "target": "com.amazonaws.backup#Long", + "traits": { + "smithy.api#documentation": "

The Backup Vault Lock configuration that specifies the minimum retention\n period that the vault retains its recovery points. This setting can be useful if, for\n example, your organization's policies require you to retain certain data for at least seven\n years (2555 days).

\n

If this parameter is not specified, Vault Lock will not enforce a minimum retention\n period.

\n

If this parameter is specified, any backup or copy job to the vault must have a\n lifecycle policy with a retention period equal to or longer than the minimum retention\n period. If the job's retention period is shorter than that minimum retention period, then\n the vault fails that backup or copy job, and you should either modify your lifecycle\n settings or use a different vault. Recovery points already saved in the vault prior to\n Vault Lock are not affected.

" + } + }, + "MaxRetentionDays": { + "target": "com.amazonaws.backup#Long", + "traits": { + "smithy.api#documentation": "

The Backup Vault Lock configuration that specifies the maximum retention\n period that the vault retains its recovery points. This setting can be useful if, for\n example, your organization's policies require you to destroy certain data after retaining\n it for four years (1460 days).

\n

If this parameter is not included, Vault Lock does not enforce a maximum retention\n period on the recovery points in the vault. If this parameter is included without a value,\n Vault Lock will not enforce a maximum retention period.

\n

If this parameter is specified, any backup or copy job to the vault must have a\n lifecycle policy with a retention period equal to or shorter than the maximum retention\n period. If the job's retention period is longer than that maximum retention period, then\n the vault fails the backup or copy job, and you should either modify your lifecycle\n settings or use a different vault. Recovery points already saved in the vault prior to\n Vault Lock are not affected.

" + } + }, + "ChangeableForDays": { + "target": "com.amazonaws.backup#Long", + "traits": { + "smithy.api#documentation": "

The Backup Vault Lock configuration that specifies the number of days before\n the lock date. For example, setting ChangeableForDays to 30 on Jan. 1, 2022 at\n 8pm UTC will set the lock date to Jan. 31, 2022 at 8pm UTC.

\n

Backup enforces a 72-hour cooling-off period before Vault Lock takes effect\n and becomes immutable. Therefore, you must set ChangeableForDays to 3 or\n greater.

\n

Before the lock date, you can delete Vault Lock from the vault using\n DeleteBackupVaultLockConfiguration or change the Vault Lock configuration\n using PutBackupVaultLockConfiguration. On and after the lock date, the Vault\n Lock becomes immutable and cannot be changed or deleted.

\n

If this parameter is not specified, you can delete Vault Lock from the vault using\n DeleteBackupVaultLockConfiguration or change the Vault Lock configuration\n using PutBackupVaultLockConfiguration at any time.

" + } + } + } + }, "com.amazonaws.backup#PutBackupVaultNotifications": { "type": "operation", "input": { @@ -5951,7 +6125,7 @@ "ReportTemplate": { "target": "com.amazonaws.backup#string", "traits": { - "smithy.api#documentation": "

Identifies the report template for the report. Reports are built using a report\n template. The report templates are:

\n

\n BACKUP_JOB_REPORT | COPY_JOB_REPORT | RESTORE_JOB_REPORT\n

" + "smithy.api#documentation": "

Identifies the report template for the report. Reports are built using a report\n template. The report templates are:

\n

\n RESOURCE_COMPLIANCE_REPORT | CONTROL_COMPLIANCE_REPORT | BACKUP_JOB_REPORT |\n COPY_JOB_REPORT | RESTORE_JOB_REPORT\n

" } }, "CreationTime": { @@ -6022,7 +6196,7 @@ "ReportSetting": { "target": "com.amazonaws.backup#ReportSetting", "traits": { - "smithy.api#documentation": "

Identifies the report template for the report. Reports are built using a report\n template. The report templates are:

\n

\n BACKUP_JOB_REPORT | COPY_JOB_REPORT | RESTORE_JOB_REPORT\n

" + "smithy.api#documentation": "

Identifies the report template for the report. Reports are built using a report\n template. The report templates are:

\n

\n RESOURCE_COMPLIANCE_REPORT | CONTROL_COMPLIANCE_REPORT | BACKUP_JOB_REPORT |\n COPY_JOB_REPORT | RESTORE_JOB_REPORT\n

\n

If the report template is RESOURCE_COMPLIANCE_REPORT or\n CONTROL_COMPLIANCE_REPORT, this API resource also describes the report\n coverage by Amazon Web Services Regions and frameworks.

" } }, "ReportDeliveryChannel": { @@ -6092,9 +6266,21 @@ "ReportTemplate": { "target": "com.amazonaws.backup#string", "traits": { - "smithy.api#documentation": "

Identifies the report template for the report. Reports are built using a report\n template. The report templates are:

\n

\n BACKUP_JOB_REPORT | COPY_JOB_REPORT | RESTORE_JOB_REPORT\n

", + "smithy.api#documentation": "

Identifies the report template for the report. Reports are built using a report\n template. The report templates are:

\n

\n RESOURCE_COMPLIANCE_REPORT | CONTROL_COMPLIANCE_REPORT | BACKUP_JOB_REPORT |\n COPY_JOB_REPORT | RESTORE_JOB_REPORT\n

", "smithy.api#required": {} } + }, + "FrameworkArns": { + "target": "com.amazonaws.backup#stringList", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of the frameworks a report covers.

" + } + }, + "NumberOfFrameworks": { + "target": "com.amazonaws.backup#integer", + "traits": { + "smithy.api#documentation": "

The number of frameworks a report covers.

" + } } }, "traits": { @@ -6961,6 +7147,9 @@ "target": "com.amazonaws.backup#UpdateFrameworkOutput" }, "errors": [ + { + "target": "com.amazonaws.backup#AlreadyExistsException" + }, { "target": "com.amazonaws.backup#ConflictException" }, @@ -7269,7 +7458,7 @@ "ReportSetting": { "target": "com.amazonaws.backup#ReportSetting", "traits": { - "smithy.api#documentation": "

Identifies the report template for the report. Reports are built using a report\n template. The report templates are:

\n

\n BACKUP_JOB_REPORT | COPY_JOB_REPORT | RESTORE_JOB_REPORT\n

" + "smithy.api#documentation": "

Identifies the report template for the report. Reports are built using a report\n template. The report templates are:

\n

\n RESOURCE_COMPLIANCE_REPORT | CONTROL_COMPLIANCE_REPORT | BACKUP_JOB_REPORT |\n COPY_JOB_REPORT | RESTORE_JOB_REPORT\n

\n

If the report template is RESOURCE_COMPLIANCE_REPORT or\n CONTROL_COMPLIANCE_REPORT, this API resource also describes the report\n coverage by Amazon Web Services Regions and frameworks.

" } }, "IdempotencyToken": { diff --git a/codegen/sdk-codegen/aws-models/chime.2018-05-01.json b/codegen/sdk-codegen/aws-models/chime.2018-05-01.json index 675cdc61c94..b6a6972ddbf 100644 --- a/codegen/sdk-codegen/aws-models/chime.2018-05-01.json +++ b/codegen/sdk-codegen/aws-models/chime.2018-05-01.json @@ -496,6 +496,50 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.chime#ArtifactsConfiguration": { + "type": "structure", + "members": { + "Audio": { + "target": "com.amazonaws.chime#AudioArtifactsConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for the audio artifacts.

", + "smithy.api#required": {} + } + }, + "Video": { + "target": "com.amazonaws.chime#VideoArtifactsConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for the video artifacts.

", + "smithy.api#required": {} + } + }, + "Content": { + "target": "com.amazonaws.chime#ContentArtifactsConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for the content artifacts.

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

The configuration for the artifacts.

" + } + }, + "com.amazonaws.chime#ArtifactsState": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "Enabled", + "name": "Enabled" + }, + { + "value": "Disabled", + "name": "Disabled" + } + ] + } + }, "com.amazonaws.chime#AssociatePhoneNumberWithUser": { "type": "operation", "input": { @@ -821,6 +865,17 @@ "smithy.api#documentation": "

\nAn Amazon Chime SDK meeting attendee. Includes a unique \nAttendeeId\nand \nJoinToken\n. The \nJoinToken\nallows a client to authenticate and join as the specified attendee. The \nJoinToken\nexpires when the meeting ends or when \nDeleteAttendee\nis called. After that, the attendee is unable to join the meeting.\n

\n\n

We recommend securely transferring each JoinToken from your server application\n to the client so that no other client has access to the token except for the one\n authorized to represent the attendee.

" } }, + "com.amazonaws.chime#AttendeeIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.chime#GuidString" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, "com.amazonaws.chime#AttendeeList": { "type": "list", "member": { @@ -851,6 +906,36 @@ } } }, + "com.amazonaws.chime#AudioArtifactsConfiguration": { + "type": "structure", + "members": { + "MuxType": { + "target": "com.amazonaws.chime#AudioMuxType", + "traits": { + "smithy.api#documentation": "

The MUX type of the audio artifact configuration object.

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

The audio artifact configuration object.

" + } + }, + "com.amazonaws.chime#AudioMuxType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "AudioOnly", + "name": "AudioOnly" + }, + { + "value": "AudioWithActiveSpeakerVideo", + "name": "AudioWithActiveSpeakerVideo" + } + ] + } + }, "com.amazonaws.chime#BadRequestException": { "type": "structure", "members": { @@ -2245,6 +2330,26 @@ "smithy.api#pattern": "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$" } }, + "com.amazonaws.chime#ChimeSdkMeetingConfiguration": { + "type": "structure", + "members": { + "SourceConfiguration": { + "target": "com.amazonaws.chime#SourceConfiguration", + "traits": { + "smithy.api#documentation": "

The source configuration for a specified media capture pipline.

" + } + }, + "ArtifactsConfiguration": { + "target": "com.amazonaws.chime#ArtifactsConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for the artifacts in an Amazon Chime SDK meeting.

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

The configuration object of the Amazon Chime SDK meeting for a specified media capture pipeline. SourceType must be ChimeSdkMeeting.

" + } + }, "com.amazonaws.chime#ClientRequestToken": { "type": "string", "traits": { @@ -2283,6 +2388,38 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.chime#ContentArtifactsConfiguration": { + "type": "structure", + "members": { + "State": { + "target": "com.amazonaws.chime#ArtifactsState", + "traits": { + "smithy.api#documentation": "

Indicates whether the content artifact is enabled or disabled.

", + "smithy.api#required": {} + } + }, + "MuxType": { + "target": "com.amazonaws.chime#ContentMuxType", + "traits": { + "smithy.api#documentation": "

The MUX type of the artifact configuration.

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

The content artifact object.

" + } + }, + "com.amazonaws.chime#ContentMuxType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ContentOnly", + "name": "ContentOnly" + } + ] + } + }, "com.amazonaws.chime#ConversationRetentionSettings": { "type": "structure", "members": { @@ -3344,6 +3481,12 @@ "smithy.api#documentation": "

The token assigned to the client making the pipeline request.

", "smithy.api#idempotencyToken": {} } + }, + "ChimeSdkMeetingConfiguration": { + "target": "com.amazonaws.chime#ChimeSdkMeetingConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for a specified media capture pipeline. SourceType must be ChimeSdkMeeting.

" + } } } }, @@ -7313,6 +7456,17 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.chime#ExternalUserIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.chime#ExternalUserIdType" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, "com.amazonaws.chime#ExternalUserIdType": { "type": "string", "traits": { @@ -12489,10 +12643,16 @@ "traits": { "smithy.api#documentation": "

The time at which the capture pipeline was updated, in ISO 8601 format.

" } + }, + "ChimeSdkMeetingConfiguration": { + "target": "com.amazonaws.chime#ChimeSdkMeetingConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for a specified media capture pipeline. SourceType must be ChimeSdkMeeting.

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

A media capture pipeline object. A string consisting of an ID, source type, a source ARN, a sink type, and a sink ARN.

" + "smithy.api#documentation": "

A media capture pipeline object consisting of an ID, source type, source ARN, a sink type, a sink ARN, and a configuration object.

" } }, "com.amazonaws.chime#MediaCapturePipelineList": { @@ -12598,7 +12758,7 @@ "EventIngestionUrl": { "target": "com.amazonaws.chime#UriType", "traits": { - "smithy.api#documentation": "

The URL of the S3 bucket used to store the captured media.

" + "smithy.api#documentation": "

The event ingestion URL.

" } } }, @@ -15437,6 +15597,26 @@ } } }, + "com.amazonaws.chime#SelectedVideoStreams": { + "type": "structure", + "members": { + "AttendeeIds": { + "target": "com.amazonaws.chime#AttendeeIdList", + "traits": { + "smithy.api#documentation": "

The attendee IDs of the streams selected for a media capture pipeline.

" + } + }, + "ExternalUserIds": { + "target": "com.amazonaws.chime#ExternalUserIdList", + "traits": { + "smithy.api#documentation": "

The external user IDs of the streams selected for a media capture pipeline.

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

The video streams to capture for a specified media capture pipeline. The total number of video streams can't exceed 25.

" + } + }, "com.amazonaws.chime#SendChannelMessage": { "type": "operation", "input": { @@ -15892,6 +16072,20 @@ ] } }, + "com.amazonaws.chime#SourceConfiguration": { + "type": "structure", + "members": { + "SelectedVideoStreams": { + "target": "com.amazonaws.chime#SelectedVideoStreams", + "traits": { + "smithy.api#documentation": "

The selected video streams to capture for a specified media capture pipeline. The number of video streams can't exceed 25.

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

Source configuration for a specified media capture pipeline.

" + } + }, "com.amazonaws.chime#StartMeetingTranscription": { "type": "operation", "input": { @@ -18185,15 +18379,13 @@ "BusinessCalling": { "target": "com.amazonaws.chime#BusinessCallingSettings", "traits": { - "smithy.api#documentation": "

The Amazon Chime Business Calling settings.

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

The Amazon Chime Business Calling settings.

" } }, "VoiceConnector": { "target": "com.amazonaws.chime#VoiceConnectorSettings", "traits": { - "smithy.api#documentation": "

The Amazon Chime Voice Connector settings.

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

The Amazon Chime Voice Connector settings.

" } } } @@ -18210,6 +18402,9 @@ { "target": "com.amazonaws.chime#BadRequestException" }, + { + "target": "com.amazonaws.chime#ConflictException" + }, { "target": "com.amazonaws.chime#ForbiddenException" }, @@ -19427,6 +19622,38 @@ ] } }, + "com.amazonaws.chime#VideoArtifactsConfiguration": { + "type": "structure", + "members": { + "State": { + "target": "com.amazonaws.chime#ArtifactsState", + "traits": { + "smithy.api#documentation": "

Indicates whether the video artifact is enabled or disabled.

", + "smithy.api#required": {} + } + }, + "MuxType": { + "target": "com.amazonaws.chime#VideoMuxType", + "traits": { + "smithy.api#documentation": "

The MUX type of the video artifact configuration object.

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

The video artifact configuration object.

" + } + }, + "com.amazonaws.chime#VideoMuxType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "VideoOnly", + "name": "VideoOnly" + } + ] + } + }, "com.amazonaws.chime#VoiceConnector": { "type": "structure", "members": { diff --git a/codegen/sdk-codegen/aws-models/codebuild.2016-10-06.json b/codegen/sdk-codegen/aws-models/codebuild.2016-10-06.json index 9069fb04dbf..e0df2495fef 100644 --- a/codegen/sdk-codegen/aws-models/codebuild.2016-10-06.json +++ b/codegen/sdk-codegen/aws-models/codebuild.2016-10-06.json @@ -385,6 +385,21 @@ } } }, + "com.amazonaws.codebuild#BatchReportModeType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "REPORT_INDIVIDUAL_BUILDS", + "name": "REPORT_INDIVIDUAL_BUILDS" + }, + { + "value": "REPORT_AGGREGATED_BATCH", + "name": "REPORT_AGGREGATED_BATCH" + } + ] + } + }, "com.amazonaws.codebuild#BatchRestrictions": { "type": "structure", "members": { @@ -3127,7 +3142,7 @@ "sortOrder": { "target": "com.amazonaws.codebuild#SortOrderType", "traits": { - "smithy.api#documentation": "

The order to list results in. The results are sorted by build number, not the build\n identifier.

\n

Valid values include:

\n \n

If the project has more than 100 builds, setting the sort order will result in an\n error.

" + "smithy.api#documentation": "

The order to sort the results in. The results are sorted by build number, not the build\n identifier. If this is not specified, the results are sorted in descending order.

\n

Valid values include:

\n \n

If the project has more than 100 builds, setting the sort order will result in an\n error.

" } }, "nextToken": { @@ -3144,7 +3159,7 @@ "ids": { "target": "com.amazonaws.codebuild#BuildIds", "traits": { - "smithy.api#documentation": "

A list of build IDs for the specified build project, with each build ID representing a\n single build.

" + "smithy.api#documentation": "

A list of build identifiers for the specified build project, with each build ID representing a\n single build.

" } }, "nextToken": { @@ -4183,6 +4198,12 @@ "traits": { "smithy.api#documentation": "

Specifies the maximum amount of time, in minutes, that the batch build must be completed in.

" } + }, + "batchReportMode": { + "target": "com.amazonaws.codebuild#BatchReportModeType", + "traits": { + "smithy.api#documentation": "

Specifies how build status reports are sent to the source provider for the batch build. This property is only used\n when the source provider for your project is Bitbucket, GitHub, or GitHub Enterprise,\n and your project is configured to report build statuses to the source provider.

\n
\n
REPORT_AGGREGATED_BATCH
\n
\n

(Default) Aggregate all of the build statuses into a single status report.

\n
\n
REPORT_INDIVIDUAL_BUILDS
\n
\n

Send a separate status report for each individual build.

\n
\n
" + } } }, "traits": { @@ -6252,7 +6273,7 @@ "secondaryArtifacts": { "target": "com.amazonaws.codebuild#ProjectArtifactsList", "traits": { - "smithy.api#documentation": "

An array of ProjectSource objects.

" + "smithy.api#documentation": "

An array of ProjectArtifact objects.

" } }, "cache": { diff --git a/codegen/sdk-codegen/aws-models/ec2.2016-11-15.json b/codegen/sdk-codegen/aws-models/ec2.2016-11-15.json index 7a3943d0380..85fe7fad2e7 100644 --- a/codegen/sdk-codegen/aws-models/ec2.2016-11-15.json +++ b/codegen/sdk-codegen/aws-models/ec2.2016-11-15.json @@ -596,7 +596,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "NetworkBorderGroup", - "smithy.api#documentation": "

The name of the unique set of Availability Zones, Local Zones, or Wavelength Zones from\n which AWS advertises IP addresses.

", + "smithy.api#documentation": "

The name of the unique set of Availability Zones, Local Zones, or Wavelength Zones from\n which Amazon Web Services advertises IP addresses.

", "smithy.api#xmlName": "networkBorderGroup" } }, @@ -801,7 +801,7 @@ "NetworkBorderGroup": { "target": "com.amazonaws.ec2#String", "traits": { - "smithy.api#documentation": "

A unique set of Availability Zones, Local Zones, or Wavelength Zones from which AWS\n advertises IP addresses. Use this parameter to limit the IP address to this location. IP\n addresses cannot move between network border groups.

\n

Use DescribeAvailabilityZones to view the network border groups.

\n \n \n

You cannot use a network border group with EC2 Classic. If you attempt this operation on EC2 classic, you will receive an InvalidParameterCombination error. For more information, see Error Codes.

\n
" + "smithy.api#documentation": "

A unique set of Availability Zones, Local Zones, or Wavelength Zones from which Amazon Web Services\n advertises IP addresses. Use this parameter to limit the IP address to this location. IP\n addresses cannot move between network border groups.

\n

Use DescribeAvailabilityZones to view the network border groups.

\n \n

You cannot use a network border group with EC2 Classic. If you attempt this operation on EC2 Classic, \n you receive an InvalidParameterCombination error.

" } }, "CustomerOwnedIpv4Pool": { @@ -858,7 +858,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "NetworkBorderGroup", - "smithy.api#documentation": "

The set of Availability Zones, Local Zones, or Wavelength Zones from which AWS advertises\n IP addresses.

", + "smithy.api#documentation": "

The set of Availability Zones, Local Zones, or Wavelength Zones from which Amazon Web Services advertises\n IP addresses.

", "smithy.api#xmlName": "networkBorderGroup" } }, @@ -1255,6 +1255,9 @@ { "target": "com.amazonaws.ec2#CancelCapacityReservation" }, + { + "target": "com.amazonaws.ec2#CancelCapacityReservationFleets" + }, { "target": "com.amazonaws.ec2#CancelConversionTask" }, @@ -1288,6 +1291,9 @@ { "target": "com.amazonaws.ec2#CreateCapacityReservation" }, + { + "target": "com.amazonaws.ec2#CreateCapacityReservationFleet" + }, { "target": "com.amazonaws.ec2#CreateCarrierGateway" }, @@ -1681,6 +1687,9 @@ { "target": "com.amazonaws.ec2#DescribeByoipCidrs" }, + { + "target": "com.amazonaws.ec2#DescribeCapacityReservationFleets" + }, { "target": "com.amazonaws.ec2#DescribeCapacityReservations" }, @@ -2251,6 +2260,9 @@ { "target": "com.amazonaws.ec2#ModifyCapacityReservation" }, + { + "target": "com.amazonaws.ec2#ModifyCapacityReservationFleet" + }, { "target": "com.amazonaws.ec2#ModifyClientVpnEndpoint" }, @@ -5772,6 +5784,88 @@ "smithy.api#documentation": "

Cancels the specified Capacity Reservation, releases the reserved capacity, and changes the Capacity Reservation's state to\n\t\t\tcancelled.

\n\t\t

Instances running in the reserved capacity continue running until you stop them. Stopped\n\t\t\tinstances that target the Capacity Reservation can no longer launch. Modify these instances to either\n\t\t\ttarget a different Capacity Reservation, launch On-Demand Instance capacity, or run in any open Capacity Reservation\n\t\t\tthat has matching attributes and sufficient capacity.

" } }, + "com.amazonaws.ec2#CancelCapacityReservationFleetError": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.ec2#CancelCapacityReservationFleetErrorCode", + "traits": { + "aws.protocols#ec2QueryName": "Code", + "smithy.api#documentation": "

The error code.

", + "smithy.api#xmlName": "code" + } + }, + "Message": { + "target": "com.amazonaws.ec2#CancelCapacityReservationFleetErrorMessage", + "traits": { + "aws.protocols#ec2QueryName": "Message", + "smithy.api#documentation": "

The error message.

", + "smithy.api#xmlName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Capacity Reservation Fleet cancellation error.

" + } + }, + "com.amazonaws.ec2#CancelCapacityReservationFleetErrorCode": { + "type": "string" + }, + "com.amazonaws.ec2#CancelCapacityReservationFleetErrorMessage": { + "type": "string" + }, + "com.amazonaws.ec2#CancelCapacityReservationFleets": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CancelCapacityReservationFleetsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CancelCapacityReservationFleetsResult" + }, + "traits": { + "smithy.api#documentation": "

Cancels one or more Capacity Reservation Fleets. When you cancel a Capacity Reservation \n\t\t\tFleet, the following happens:

\n\t\t " + } + }, + "com.amazonaws.ec2#CancelCapacityReservationFleetsRequest": { + "type": "structure", + "members": { + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "CapacityReservationFleetIds": { + "target": "com.amazonaws.ec2#CapacityReservationFleetIdSet", + "traits": { + "smithy.api#documentation": "

The IDs of the Capacity Reservation Fleets to cancel.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "CapacityReservationFleetId" + } + } + } + }, + "com.amazonaws.ec2#CancelCapacityReservationFleetsResult": { + "type": "structure", + "members": { + "SuccessfulFleetCancellations": { + "target": "com.amazonaws.ec2#CapacityReservationFleetCancellationStateSet", + "traits": { + "aws.protocols#ec2QueryName": "SuccessfulFleetCancellationSet", + "smithy.api#documentation": "

Information about the Capacity Reservation Fleets that were successfully cancelled.

", + "smithy.api#xmlName": "successfulFleetCancellationSet" + } + }, + "FailedFleetCancellations": { + "target": "com.amazonaws.ec2#FailedCapacityReservationFleetCancellationResultSet", + "traits": { + "aws.protocols#ec2QueryName": "FailedFleetCancellationSet", + "smithy.api#documentation": "

Information about the Capacity Reservation Fleets that could not be cancelled.

", + "smithy.api#xmlName": "failedFleetCancellationSet" + } + } + } + }, "com.amazonaws.ec2#CancelCapacityReservationRequest": { "type": "structure", "members": { @@ -6416,12 +6510,229 @@ "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Outpost on which the Capacity \n\t \t\tReservation was created.

", "smithy.api#xmlName": "outpostArn" } + }, + "CapacityReservationFleetId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationFleetId", + "smithy.api#documentation": "

The ID of the Capacity Reservation Fleet to which the Capacity Reservation belongs. \n\t\t\tOnly valid for Capacity Reservations that were created by a Capacity Reservation Fleet.

", + "smithy.api#xmlName": "capacityReservationFleetId" + } } }, "traits": { "smithy.api#documentation": "

Describes a Capacity Reservation.

" } }, + "com.amazonaws.ec2#CapacityReservationFleet": { + "type": "structure", + "members": { + "CapacityReservationFleetId": { + "target": "com.amazonaws.ec2#CapacityReservationFleetId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationFleetId", + "smithy.api#documentation": "

The ID of the Capacity Reservation Fleet.

", + "smithy.api#xmlName": "capacityReservationFleetId" + } + }, + "CapacityReservationFleetArn": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationFleetArn", + "smithy.api#documentation": "

The ARN of the Capacity Reservation Fleet.

", + "smithy.api#xmlName": "capacityReservationFleetArn" + } + }, + "State": { + "target": "com.amazonaws.ec2#CapacityReservationFleetState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The state of the Capacity Reservation Fleet. Possible states include:

\n\t\t ", + "smithy.api#xmlName": "state" + } + }, + "TotalTargetCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TotalTargetCapacity", + "smithy.api#documentation": "

The total number of capacity units for which the Capacity Reservation Fleet reserves capacity. \n\t\t\tFor more information, see Total target capacity \n\t\t\tin the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "totalTargetCapacity" + } + }, + "TotalFulfilledCapacity": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "TotalFulfilledCapacity", + "smithy.api#documentation": "

The capacity units that have been fulfilled.

", + "smithy.api#xmlName": "totalFulfilledCapacity" + } + }, + "Tenancy": { + "target": "com.amazonaws.ec2#FleetCapacityReservationTenancy", + "traits": { + "aws.protocols#ec2QueryName": "Tenancy", + "smithy.api#documentation": "

The tenancy of the Capacity Reservation Fleet. Tenancies include:

\n\t\t ", + "smithy.api#xmlName": "tenancy" + } + }, + "EndDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "EndDate", + "smithy.api#documentation": "

The date and time at which the Capacity Reservation Fleet expires.

", + "smithy.api#xmlName": "endDate" + } + }, + "CreateTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreateTime", + "smithy.api#documentation": "

The date and time at which the Capacity Reservation Fleet was created.

", + "smithy.api#xmlName": "createTime" + } + }, + "InstanceMatchCriteria": { + "target": "com.amazonaws.ec2#FleetInstanceMatchCriteria", + "traits": { + "aws.protocols#ec2QueryName": "InstanceMatchCriteria", + "smithy.api#documentation": "

Indicates the type of instance launches that the Capacity Reservation Fleet accepts. All \n\t\t\tCapacity Reservations in the Fleet inherit this instance matching criteria.

\n\t\t

Currently, Capacity Reservation Fleets support open instance matching criteria \n\t\t\tonly. This means that instances that have matching attributes (instance type, platform, and \n\t\t\tAvailability Zone) run in the Capacity Reservations automatically. Instances do not need to \n\t\t\texplicitly target a Capacity Reservation Fleet to use its reserved capacity.

", + "smithy.api#xmlName": "instanceMatchCriteria" + } + }, + "AllocationStrategy": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AllocationStrategy", + "smithy.api#documentation": "

The strategy used by the Capacity Reservation Fleet to determine which of the specified \n\t\t\tinstance types to use. For more information, see For more information, see \n\t\t\t\n\t\t\t\tAllocation strategy in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "allocationStrategy" + } + }, + "InstanceTypeSpecifications": { + "target": "com.amazonaws.ec2#FleetCapacityReservationSet", + "traits": { + "aws.protocols#ec2QueryName": "InstanceTypeSpecificationSet", + "smithy.api#documentation": "

Information about the instance types for which to reserve the capacity.

", + "smithy.api#xmlName": "instanceTypeSpecificationSet" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the Capacity Reservation Fleet.

", + "smithy.api#xmlName": "tagSet" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a Capacity Reservation Fleet.

" + } + }, + "com.amazonaws.ec2#CapacityReservationFleetCancellationState": { + "type": "structure", + "members": { + "CurrentFleetState": { + "target": "com.amazonaws.ec2#CapacityReservationFleetState", + "traits": { + "aws.protocols#ec2QueryName": "CurrentFleetState", + "smithy.api#documentation": "

The current state of the Capacity Reservation Fleet.

", + "smithy.api#xmlName": "currentFleetState" + } + }, + "PreviousFleetState": { + "target": "com.amazonaws.ec2#CapacityReservationFleetState", + "traits": { + "aws.protocols#ec2QueryName": "PreviousFleetState", + "smithy.api#documentation": "

The previous state of the Capacity Reservation Fleet.

", + "smithy.api#xmlName": "previousFleetState" + } + }, + "CapacityReservationFleetId": { + "target": "com.amazonaws.ec2#CapacityReservationFleetId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationFleetId", + "smithy.api#documentation": "

The ID of the Capacity Reservation Fleet that was successfully cancelled.

", + "smithy.api#xmlName": "capacityReservationFleetId" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Capacity Reservation Fleet that was successfully cancelled.

" + } + }, + "com.amazonaws.ec2#CapacityReservationFleetCancellationStateSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityReservationFleetCancellationState", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityReservationFleetId": { + "type": "string" + }, + "com.amazonaws.ec2#CapacityReservationFleetIdSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityReservationFleetId", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityReservationFleetSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#CapacityReservationFleet", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#CapacityReservationFleetState": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "submitted", + "name": "SUBMITTED" + }, + { + "value": "modifying", + "name": "MODIFYING" + }, + { + "value": "active", + "name": "ACTIVE" + }, + { + "value": "partially_fulfilled", + "name": "PARTIALLY_FULFILLED" + }, + { + "value": "expiring", + "name": "EXPIRING" + }, + { + "value": "expired", + "name": "EXPIRED" + }, + { + "value": "cancelling", + "name": "CANCELLING" + }, + { + "value": "cancelled", + "name": "CANCELLED" + }, + { + "value": "failed", + "name": "FAILED" + } + ] + } + }, "com.amazonaws.ec2#CapacityReservationGroup": { "type": "structure", "members": { @@ -7882,7 +8193,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "AwsAccountId", - "smithy.api#documentation": "

The AWS account ID.

", + "smithy.api#documentation": "

The Amazon Web Services account ID.

", "smithy.api#xmlName": "awsAccountId" } }, @@ -7890,7 +8201,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "AwsService", - "smithy.api#documentation": "

The AWS service.

", + "smithy.api#documentation": "

The Amazon Web Services service.

", "smithy.api#xmlName": "awsService" } }, @@ -8392,7 +8703,7 @@ "ClientToken": { "target": "com.amazonaws.ec2#String", "traits": { - "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. \n For more information, see Ensuring Idempotency.

" + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. \n For more information, see Ensuring idempotency.

" } } } @@ -8702,6 +9013,175 @@ "smithy.api#documentation": "

Creates a new Capacity Reservation with the specified attributes.

\n\t\t

Capacity Reservations enable you to reserve capacity for your Amazon EC2 instances in a specific Availability Zone for any duration. This \n\t\t\tgives you the flexibility to selectively add capacity reservations and still get the Regional RI discounts for that usage. \n\t\t\tBy creating Capacity Reservations, you ensure that you always have access to Amazon EC2 capacity when you need it, for as long as you need it. \n\t\t\tFor more information, see Capacity Reservations in the Amazon EC2 User Guide.

\n\t\t\n\t\t

Your request to create a Capacity Reservation could fail if Amazon EC2 does not have sufficient capacity to\n\t\t\tfulfill the request. If your request fails due to Amazon EC2 capacity constraints, either try\n\t\t\tagain at a later time, try in a different Availability Zone, or request a smaller\n\t\t\tcapacity reservation. If your application is flexible across instance types and sizes,\n\t\t\ttry to create a Capacity Reservation with different instance attributes.

\n\t\t\n\t\t

Your request could also fail if the requested quantity exceeds your On-Demand Instance\n\t\t\tlimit for the selected instance type. If your request fails due to limit constraints,\n\t\t\tincrease your On-Demand Instance limit for the required instance type and try again. For\n\t\t\tmore information about increasing your instance limits, see Amazon EC2 Service\n\t\t\t\tQuotas in the Amazon EC2 User Guide.

" } }, + "com.amazonaws.ec2#CreateCapacityReservationFleet": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#CreateCapacityReservationFleetRequest" + }, + "output": { + "target": "com.amazonaws.ec2#CreateCapacityReservationFleetResult" + }, + "traits": { + "smithy.api#documentation": "

Creates a Capacity Reservation Fleet. For more information, see Create a Capacity \n\t\t\tReservation Fleet in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#CreateCapacityReservationFleetRequest": { + "type": "structure", + "members": { + "AllocationStrategy": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The strategy used by the Capacity Reservation Fleet to determine which of the \n\t\t\tspecified instance types to use. Currently, only the prioritized \n\t\t\tallocation strategy is supported. For more information, see \n\t\t\t\tAllocation strategy in the Amazon EC2 User Guide.

\n\t\t

Valid values: prioritized\n

" + } + }, + "ClientToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensure Idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "InstanceTypeSpecifications": { + "target": "com.amazonaws.ec2#ReservationFleetInstanceSpecificationList", + "traits": { + "smithy.api#documentation": "

Information about the instance types for which to reserve the capacity.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "InstanceTypeSpecification" + } + }, + "Tenancy": { + "target": "com.amazonaws.ec2#FleetCapacityReservationTenancy", + "traits": { + "smithy.api#documentation": "

Indicates the tenancy of the Capacity Reservation Fleet. All Capacity Reservations \n\t\t\tin the Fleet inherit this tenancy. The Capacity Reservation Fleet can have one of \n\t\t\tthe following tenancy settings:

\n\t\t " + } + }, + "TotalTargetCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The total number of capacity units to be reserved by the Capacity Reservation Fleet. This \n\t\t\tvalue, together with the instance type weights that you assign to each instance type used by \n\t\t\tthe Fleet determine the number of instances for which the Fleet reserves capacity. Both values \n\t\t\tare based on units that make sense for your workload. For more information, see \n\t\t\t\tTotal target capacity in the Amazon EC2 User Guide.

", + "smithy.api#required": {} + } + }, + "EndDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#documentation": "

The date and time at which the Capacity Reservation Fleet expires. When the Capacity \n\t\t\tReservation Fleet expires, its state changes to expired and all of the Capacity \n\t\t\tReservations in the Fleet expire.

\t\n\t\t

The Capacity Reservation Fleet expires within an hour after the specified time. For example, \n\t\t\tif you specify 5/31/2019, 13:30:55, the Capacity Reservation Fleet \n\t\t\tis guaranteed to expire between 13:30:55 and 14:30:55 on \n\t\t\t5/31/2019.\n\t\t

" + } + }, + "InstanceMatchCriteria": { + "target": "com.amazonaws.ec2#FleetInstanceMatchCriteria", + "traits": { + "smithy.api#documentation": "

Indicates the type of instance launches that the Capacity Reservation Fleet accepts. All \n\t\t\tCapacity Reservations in the Fleet inherit this instance matching criteria.

\n\t\t

Currently, Capacity Reservation Fleets support open instance matching criteria \n\t\t\tonly. This means that instances that have matching attributes (instance type, platform, and \n\t\t\tAvailability Zone) run in the Capacity Reservations automatically. Instances do not need to \n\t\t\texplicitly target a Capacity Reservation Fleet to use its reserved capacity.

" + } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

The tags to assign to the Capacity Reservation Fleet. The tags are automatically assigned \n\t\t\tto the Capacity Reservations in the Fleet.

", + "smithy.api#xmlName": "TagSpecification" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + } + }, + "com.amazonaws.ec2#CreateCapacityReservationFleetResult": { + "type": "structure", + "members": { + "CapacityReservationFleetId": { + "target": "com.amazonaws.ec2#CapacityReservationFleetId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationFleetId", + "smithy.api#documentation": "

The ID of the Capacity Reservation Fleet.

", + "smithy.api#xmlName": "capacityReservationFleetId" + } + }, + "State": { + "target": "com.amazonaws.ec2#CapacityReservationFleetState", + "traits": { + "aws.protocols#ec2QueryName": "State", + "smithy.api#documentation": "

The status of the Capacity Reservation Fleet.

", + "smithy.api#xmlName": "state" + } + }, + "TotalTargetCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TotalTargetCapacity", + "smithy.api#documentation": "

The total number of capacity units for which the Capacity Reservation Fleet reserves capacity.

", + "smithy.api#xmlName": "totalTargetCapacity" + } + }, + "TotalFulfilledCapacity": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "TotalFulfilledCapacity", + "smithy.api#documentation": "

The requested capacity units that have been successfully reserved.

", + "smithy.api#xmlName": "totalFulfilledCapacity" + } + }, + "InstanceMatchCriteria": { + "target": "com.amazonaws.ec2#FleetInstanceMatchCriteria", + "traits": { + "aws.protocols#ec2QueryName": "InstanceMatchCriteria", + "smithy.api#documentation": "

The instance matching criteria for the Capacity Reservation Fleet.

", + "smithy.api#xmlName": "instanceMatchCriteria" + } + }, + "AllocationStrategy": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AllocationStrategy", + "smithy.api#documentation": "

The allocation strategy used by the Capacity Reservation Fleet.

", + "smithy.api#xmlName": "allocationStrategy" + } + }, + "CreateTime": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreateTime", + "smithy.api#documentation": "

The date and time at which the Capacity Reservation Fleet was created.

", + "smithy.api#xmlName": "createTime" + } + }, + "EndDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "EndDate", + "smithy.api#documentation": "

The date and time at which the Capacity Reservation Fleet expires.

", + "smithy.api#xmlName": "endDate" + } + }, + "Tenancy": { + "target": "com.amazonaws.ec2#FleetCapacityReservationTenancy", + "traits": { + "aws.protocols#ec2QueryName": "Tenancy", + "smithy.api#documentation": "

Indicates the tenancy of Capacity Reservation Fleet.

", + "smithy.api#xmlName": "tenancy" + } + }, + "FleetCapacityReservations": { + "target": "com.amazonaws.ec2#FleetCapacityReservationSet", + "traits": { + "aws.protocols#ec2QueryName": "FleetCapacityReservationSet", + "smithy.api#documentation": "

Information about the individual Capacity Reservations in the Capacity Reservation Fleet.

", + "smithy.api#xmlName": "fleetCapacityReservationSet" + } + }, + "Tags": { + "target": "com.amazonaws.ec2#TagList", + "traits": { + "aws.protocols#ec2QueryName": "TagSet", + "smithy.api#documentation": "

The tags assigned to the Capacity Reservation Fleet.

", + "smithy.api#xmlName": "tagSet" + } + } + } + }, "com.amazonaws.ec2#CreateCapacityReservationRequest": { "type": "structure", "members": { @@ -9686,7 +10166,7 @@ "LogFormat": { "target": "com.amazonaws.ec2#String", "traits": { - "smithy.api#documentation": "

The fields to include in the flow log record, in the order in which they should\n appear. For a list of available fields, see Flow log records. If you\n omit this parameter, the flow log is created using the default format. If you specify this parameter, \n you must specify at least one field.

\n

Specify the fields using the ${field-id} format, separated by spaces. For\n the CLI, use single quotation marks (' ') to surround the parameter value.

" + "smithy.api#documentation": "

The fields to include in the flow log record, in the order in which they should\n appear. For a list of available fields, see Flow log records. If you\n omit this parameter, the flow log is created using the default format. If you specify this parameter, \n you must specify at least one field.

\n

Specify the fields using the ${field-id} format, separated by spaces. For\n the CLI, surround this parameter value with single quotes on Linux or\n double quotes on Windows.

" } }, "TagSpecifications": { @@ -9742,7 +10222,7 @@ "target": "com.amazonaws.ec2#CreateFpgaImageResult" }, "traits": { - "smithy.api#documentation": "

Creates an Amazon FPGA Image (AFI) from the specified design checkpoint (DCP).

\n

The create operation is asynchronous. To verify that the AFI is ready for use, \n check the output logs.

\n

An AFI contains the FPGA bitstream that is ready to download to an FPGA. \n You can securely deploy an AFI on multiple FPGA-accelerated instances.\n For more information, see the AWS FPGA Hardware Development Kit.

" + "smithy.api#documentation": "

Creates an Amazon FPGA Image (AFI) from the specified design checkpoint (DCP).

\n

The create operation is asynchronous. To verify that the AFI is ready for use, \n check the output logs.

\n

An AFI contains the FPGA bitstream that is ready to download to an FPGA. \n You can securely deploy an AFI on multiple FPGA-accelerated instances.\n For more information, see the Amazon Web Services FPGA Hardware Development Kit.

" } }, "com.amazonaws.ec2#CreateFpgaImageRequest": { @@ -10135,7 +10615,7 @@ "target": "com.amazonaws.ec2#CreateLaunchTemplateResult" }, "traits": { - "smithy.api#documentation": "

Creates a launch template. A launch template contains the parameters to launch an\n instance. When you launch an instance using RunInstances, you can\n specify a launch template instead of providing the launch parameters in the request. For\n more information, see Launching an instance from a\n launch templatein the Amazon Elastic Compute Cloud User Guide.

" + "smithy.api#documentation": "

Creates a launch template. A launch template contains the parameters to launch an\n instance. When you launch an instance using RunInstances, you can\n specify a launch template instead of providing the launch parameters in the request. For\n more information, see Launching an instance from a\n launch template in the Amazon Elastic Compute Cloud User Guide.

" } }, "com.amazonaws.ec2#CreateLaunchTemplateRequest": { @@ -10313,18 +10793,18 @@ "smithy.api#required": {} } }, - "DryRun": { - "target": "com.amazonaws.ec2#Boolean", - "traits": { - "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" - } - }, "LocalGatewayVirtualInterfaceGroupId": { "target": "com.amazonaws.ec2#LocalGatewayVirtualInterfaceGroupId", "traits": { "smithy.api#documentation": "

The ID of the virtual interface group.

", "smithy.api#required": {} } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

" + } } } }, @@ -11899,6 +12379,13 @@ "smithy.api#documentation": "

The AZ ID or the Local Zone ID of the subnet.

" } }, + "CidrBlock": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The IPv4 network range for the subnet, in CIDR notation. For example, 10.0.0.0/24. We modify the specified CIDR block to its canonical form; for example, if you specify 100.68.0.18/18, we modify it to 100.68.0.0/18.

", + "smithy.api#required": {} + } + }, "Ipv6CidrBlock": { "target": "com.amazonaws.ec2#String", "traits": { @@ -11925,13 +12412,6 @@ "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

", "smithy.api#xmlName": "dryRun" } - }, - "CidrBlock": { - "target": "com.amazonaws.ec2#String", - "traits": { - "smithy.api#documentation": "

The IPv4 network range for the subnet, in CIDR notation. For example, 10.0.0.0/24. We modify the specified CIDR block to its canonical form; for example, if you specify 100.68.0.18/18, we modify it to 100.68.0.0/18.

", - "smithy.api#required": {} - } } } }, @@ -12023,7 +12503,7 @@ "ClientToken": { "target": "com.amazonaws.ec2#String", "traits": { - "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

", + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

", "smithy.api#idempotencyToken": {} } } @@ -12044,7 +12524,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "ClientToken", - "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

", + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

", "smithy.api#xmlName": "clientToken" } } @@ -12059,7 +12539,7 @@ "target": "com.amazonaws.ec2#CreateTrafficMirrorFilterRuleResult" }, "traits": { - "smithy.api#documentation": "

Creates a Traffic Mirror filter rule.

\n

A Traffic Mirror rule defines the Traffic Mirror source traffic to mirror.

\n

You need the Traffic Mirror filter ID when you create the rule.

" + "smithy.api#documentation": "

Creates a Traffic Mirror filter rule.

\n

A Traffic Mirror rule defines the Traffic Mirror source traffic to mirror.

\n

You need the Traffic Mirror filter ID when you create the rule.

" } }, "com.amazonaws.ec2#CreateTrafficMirrorFilterRuleRequest": { @@ -12075,7 +12555,7 @@ "TrafficDirection": { "target": "com.amazonaws.ec2#TrafficDirection", "traits": { - "smithy.api#documentation": "

The type of traffic (ingress | egress).

", + "smithy.api#documentation": "

The type of traffic.

", "smithy.api#required": {} } }, @@ -12089,7 +12569,7 @@ "RuleAction": { "target": "com.amazonaws.ec2#TrafficMirrorRuleAction", "traits": { - "smithy.api#documentation": "

The action to take (accept | reject) on the filtered traffic.

", + "smithy.api#documentation": "

The action to take on the filtered traffic.

", "smithy.api#required": {} } }, @@ -12140,7 +12620,7 @@ "ClientToken": { "target": "com.amazonaws.ec2#String", "traits": { - "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

", + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

", "smithy.api#idempotencyToken": {} } } @@ -12161,7 +12641,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "ClientToken", - "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

", + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

", "smithy.api#xmlName": "clientToken" } } @@ -12244,7 +12724,7 @@ "ClientToken": { "target": "com.amazonaws.ec2#String", "traits": { - "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

", + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

", "smithy.api#idempotencyToken": {} } } @@ -12265,7 +12745,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "ClientToken", - "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

", + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

", "smithy.api#xmlName": "clientToken" } } @@ -12320,7 +12800,7 @@ "ClientToken": { "target": "com.amazonaws.ec2#String", "traits": { - "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

", + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

", "smithy.api#idempotencyToken": {} } } @@ -12341,7 +12821,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "ClientToken", - "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

", + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

", "smithy.api#xmlName": "clientToken" } } @@ -13147,7 +13627,7 @@ "target": "com.amazonaws.ec2#CreateVpcEndpointResult" }, "traits": { - "smithy.api#documentation": "

Creates a VPC endpoint for a specified service. An endpoint enables you to create a\n private connection between your VPC and the service. The service may be provided by AWS,\n an AWS Marketplace Partner, or another AWS account. For more information, see VPC Endpoints in\n the Amazon Virtual Private Cloud User Guide.

\n

A gateway endpoint serves as a target for a route in your route table for\n traffic destined for the AWS service. You can specify an endpoint policy to attach to\n the endpoint, which will control access to the service from your VPC. You can also\n specify the VPC route tables that use the endpoint.

\n

An interface endpoint is a network interface in your subnet that\n serves as an endpoint for communicating with the specified service. You can specify the\n subnets in which to create an endpoint, and the security groups to associate with the\n endpoint network interface.

\n

A GatewayLoadBalancer endpoint is a network interface in your subnet that serves an endpoint for communicating with a Gateway Load Balancer that you've configured as a VPC endpoint service.

\n

Use DescribeVpcEndpointServices to get a list of supported\n services.

" + "smithy.api#documentation": "

Creates a VPC endpoint for a specified service. An endpoint enables you to create a\n private connection between your VPC and the service. The service may be provided by Amazon Web Services,\n an Amazon Web Services Marketplace Partner, or another Amazon Web Services account. For more information, \n see VPC Endpoints in the\n Amazon Virtual Private Cloud User Guide.

\n

A gateway endpoint serves as a target for a route in your route table for\n traffic destined for the Amazon Web Service. You can specify an endpoint policy to attach \n to the endpoint, which will control access to the service from your VPC. You can also\n specify the VPC route tables that use the endpoint.

\n

An interface endpoint is a network interface in your subnet that\n serves as an endpoint for communicating with the specified service. You can specify the\n subnets in which to create an endpoint, and the security groups to associate with the\n endpoint network interface.

\n

A GatewayLoadBalancer endpoint is a network interface in your subnet that serves an endpoint for communicating with a Gateway Load Balancer that you've configured as a VPC endpoint service.

\n

Use DescribeVpcEndpointServices to get a list of supported\n services.

" } }, "com.amazonaws.ec2#CreateVpcEndpointConnectionNotification": { @@ -13200,7 +13680,7 @@ "ClientToken": { "target": "com.amazonaws.ec2#String", "traits": { - "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. For more information, see How to Ensure\n Idempotency.

" + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. For more information, see How to ensure\n idempotency.

" } } } @@ -13285,7 +13765,7 @@ "ClientToken": { "target": "com.amazonaws.ec2#String", "traits": { - "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. For more information, see How to Ensure\n Idempotency.

" + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. For more information, see How to ensure\n idempotency.

" } }, "PrivateDnsEnabled": { @@ -13339,7 +13819,7 @@ "target": "com.amazonaws.ec2#CreateVpcEndpointServiceConfigurationResult" }, "traits": { - "smithy.api#documentation": "

Creates a VPC endpoint service configuration to which service consumers (AWS accounts,\n IAM users, and IAM roles) can connect.

\n

To create an endpoint service configuration, you must first create one of the\n following for your service:

\n \n

For more information, see VPC Endpoint Services in the\n Amazon Virtual Private Cloud User Guide.

\n

If you set the private DNS name, you must prove that you own the private DNS domain\n name. For more information, see VPC Endpoint Service\n Private DNS Name Verification in the\n Amazon Virtual Private Cloud User Guide.

" + "smithy.api#documentation": "

Creates a VPC endpoint service configuration to which service consumers (Amazon Web Services accounts,\n IAM users, and IAM roles) can connect.

\n

To create an endpoint service configuration, you must first create one of the\n following for your service:

\n \n

For more information, see VPC Endpoint Services in the\n Amazon Virtual Private Cloud User Guide.

\n

If you set the private DNS name, you must prove that you own the private DNS domain\n name. For more information, see VPC Endpoint Service\n Private DNS Name Verification in the\n Amazon Virtual Private Cloud User Guide.

" } }, "com.amazonaws.ec2#CreateVpcEndpointServiceConfigurationRequest": { @@ -13380,7 +13860,7 @@ "ClientToken": { "target": "com.amazonaws.ec2#String", "traits": { - "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.\n For more information, see How to Ensure\n Idempotency.

" + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.\n For more information, see How to ensure\n idempotency.

" } }, "TagSpecifications": { @@ -17078,7 +17558,7 @@ "target": "com.amazonaws.ec2#DescribeAvailabilityZonesResult" }, "traits": { - "smithy.api#documentation": "

Describes the Availability Zones, Local Zones, and Wavelength Zones that are available to\n you. If there is an event impacting a zone, you can use this request to view the state and any\n provided messages for that zone.

\n

For more information about Availability Zones, Local Zones, and Wavelength Zones, see\n Regions, Zones and\n Outposts in the Amazon Elastic Compute Cloud User Guide.

" + "smithy.api#documentation": "

Describes the Availability Zones, Local Zones, and Wavelength Zones that are available to\n you. If there is an event impacting a zone, you can use this request to view the state and any\n provided messages for that zone.

\n

For more information about Availability Zones, Local Zones, and Wavelength Zones, see\n Regions and zones \n in the Amazon Elastic Compute Cloud User Guide.

" } }, "com.amazonaws.ec2#DescribeAvailabilityZonesRequest": { @@ -17285,6 +17765,91 @@ } } }, + "com.amazonaws.ec2#DescribeCapacityReservationFleets": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DescribeCapacityReservationFleetsRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DescribeCapacityReservationFleetsResult" + }, + "traits": { + "smithy.api#documentation": "

Describes one or more Capacity Reservation Fleets.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "CapacityReservationFleets", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ec2#DescribeCapacityReservationFleetsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.ec2#DescribeCapacityReservationFleetsRequest": { + "type": "structure", + "members": { + "CapacityReservationFleetIds": { + "target": "com.amazonaws.ec2#CapacityReservationFleetIdSet", + "traits": { + "smithy.api#documentation": "

The IDs of the Capacity Reservation Fleets to describe.

", + "smithy.api#xmlName": "CapacityReservationFleetId" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The token to use to retrieve the next page of results.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ec2#DescribeCapacityReservationFleetsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned nextToken value. This value can be between 5 and 500. If maxResults is given a larger value than 500, you receive an error.

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

One or more filters.

\n\t\t ", + "smithy.api#xmlName": "Filter" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + } + }, + "com.amazonaws.ec2#DescribeCapacityReservationFleetsResult": { + "type": "structure", + "members": { + "CapacityReservationFleets": { + "target": "com.amazonaws.ec2#CapacityReservationFleetSet", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationFleetSet", + "smithy.api#documentation": "

Information about the Capacity Reservation Fleets.

", + "smithy.api#xmlName": "capacityReservationFleetSet" + } + }, + "NextToken": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "NextToken", + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "smithy.api#xmlName": "nextToken" + } + } + } + }, "com.amazonaws.ec2#DescribeCapacityReservations": { "type": "operation", "input": { @@ -18915,7 +19480,7 @@ "target": "com.amazonaws.ec2#DescribeFleetHistoryResult" }, "traits": { - "smithy.api#documentation": "

Describes the events for the specified EC2 Fleet during the specified time.

\n

EC2 Fleet events are delayed by up to 30 seconds before they can be described. This ensures\n that you can query by the last evaluated time and not miss a recorded event. EC2 Fleet events\n are available for 48 hours.

\n

For more information, see Monitoring your EC2 Fleet in the Amazon EC2 User Guide.

" + "smithy.api#documentation": "

Describes the events for the specified EC2 Fleet during the specified time.

\n

EC2 Fleet events are delayed by up to 30 seconds before they can be described. This ensures\n that you can query by the last evaluated time and not miss a recorded event. EC2 Fleet events\n are available for 48 hours.

\n

For more information, see Monitor fleet events using Amazon EventBridge in the\n Amazon EC2 User Guide.

" } }, "com.amazonaws.ec2#DescribeFleetHistoryRequest": { @@ -19360,7 +19925,7 @@ "target": "com.amazonaws.ec2#DescribeFpgaImagesResult" }, "traits": { - "smithy.api#documentation": "

Describes the Amazon FPGA Images (AFIs) available to you. These include public AFIs,\n\t\t\tprivate AFIs that you own, and AFIs owned by other AWS accounts for which you have load\n\t\t\tpermissions.

", + "smithy.api#documentation": "

Describes the Amazon FPGA Images (AFIs) available to you. These include public AFIs,\n\t\t\tprivate AFIs that you own, and AFIs owned by other Amazon Web Services accounts for which you have load\n\t\t\tpermissions.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -19397,14 +19962,14 @@ "Owners": { "target": "com.amazonaws.ec2#OwnerStringList", "traits": { - "smithy.api#documentation": "

Filters the AFI by owner. Specify an AWS account ID, self (owner is the sender of the request), or an AWS owner alias (valid values are amazon | aws-marketplace).

", + "smithy.api#documentation": "

Filters the AFI by owner. Specify an Amazon Web Services account ID, self \n\t\t\t(owner is the sender of the request), or an Amazon Web Services owner alias (valid values are \n\t\t\tamazon | aws-marketplace).

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

The filters.

\n\t\t ", + "smithy.api#documentation": "

The filters.

\n\t\t ", "smithy.api#xmlName": "Filter" } }, @@ -19764,7 +20329,7 @@ "target": "com.amazonaws.ec2#DescribeIdFormatResult" }, "traits": { - "smithy.api#documentation": "

Describes the ID format settings for your resources on a per-Region basis, for example, to view which resource types are enabled for longer IDs. This request only returns information about resource types whose ID formats can be modified; it does not return information about other resource types.

\n

The following resource types support longer IDs: bundle |\n conversion-task | customer-gateway | dhcp-options |\n elastic-ip-allocation | elastic-ip-association |\n export-task | flow-log | image |\n import-task | instance | internet-gateway |\n network-acl | network-acl-association |\n network-interface | network-interface-attachment |\n prefix-list | reservation | route-table |\n route-table-association | security-group |\n snapshot | subnet |\n subnet-cidr-block-association | volume | vpc\n | vpc-cidr-block-association | vpc-endpoint |\n vpc-peering-connection | vpn-connection | vpn-gateway.

\n

These settings apply to the IAM user who makes the request; they do not apply to the entire\n AWS account. By default, an IAM user defaults to the same settings as the root user, unless\n they explicitly override the settings by running the ModifyIdFormat command. Resources\n created with longer IDs are visible to all IAM users, regardless of these settings and\n provided that they have permission to use the relevant Describe command for the\n resource type.

" + "smithy.api#documentation": "

Describes the ID format settings for your resources on a per-Region basis, for example, to view which resource types are enabled for longer IDs. This request only returns information about resource types whose ID formats can be modified; it does not return information about other resource types.

\n

The following resource types support longer IDs: bundle |\n conversion-task | customer-gateway | dhcp-options |\n elastic-ip-allocation | elastic-ip-association |\n export-task | flow-log | image |\n import-task | instance | internet-gateway |\n network-acl | network-acl-association |\n network-interface | network-interface-attachment |\n prefix-list | reservation | route-table |\n route-table-association | security-group |\n snapshot | subnet |\n subnet-cidr-block-association | volume | vpc\n | vpc-cidr-block-association | vpc-endpoint |\n vpc-peering-connection | vpn-connection | vpn-gateway.

\n

These settings apply to the IAM user who makes the request; they do not apply to the entire\n Amazon Web Services account. By default, an IAM user defaults to the same settings as the root user, unless\n they explicitly override the settings by running the ModifyIdFormat command. Resources\n created with longer IDs are visible to all IAM users, regardless of these settings and\n provided that they have permission to use the relevant Describe command for the\n resource type.

" } }, "com.amazonaws.ec2#DescribeIdFormatRequest": { @@ -22959,7 +23524,7 @@ "target": "com.amazonaws.ec2#DescribeRegionsResult" }, "traits": { - "smithy.api#documentation": "

Describes the Regions that are enabled for your account, or all Regions.

\n

For a list of the Regions supported by Amazon EC2, see \n Regions and Endpoints.

\n

For information about enabling and disabling Regions for your account, see Managing AWS Regions in the AWS General Reference.

" + "smithy.api#documentation": "

Describes the Regions that are enabled for your account, or all Regions.

\n

For a list of the Regions supported by Amazon EC2, see \n Amazon Elastic Compute Cloud endpoints and quotas.

\n

For information about enabling and disabling Regions for your account, see Managing Amazon Web Services Regions in the Amazon Web Services General Reference.

" } }, "com.amazonaws.ec2#DescribeRegionsRequest": { @@ -24079,6 +24644,16 @@ "comparator": "allStringEquals" } } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Snapshots[].State", + "expected": "error", + "comparator": "anyStringEquals" + } + } } ], "minDelay": 15 @@ -24307,7 +24882,7 @@ "target": "com.amazonaws.ec2#DescribeSpotFleetRequestHistoryResponse" }, "traits": { - "smithy.api#documentation": "

Describes the events for the specified Spot Fleet request during the specified\n time.

\n

Spot Fleet events are delayed by up to 30 seconds before they can be described. This\n ensures that you can query by the last evaluated time and not miss a recorded event.\n Spot Fleet events are available for 48 hours.

" + "smithy.api#documentation": "

Describes the events for the specified Spot Fleet request during the specified\n time.

\n

Spot Fleet events are delayed by up to 30 seconds before they can be described. This\n ensures that you can query by the last evaluated time and not miss a recorded event.\n Spot Fleet events are available for 48 hours.

\n

For more information, see Monitor fleet events using Amazon\n EventBridge in the Amazon EC2 User Guide for Linux Instances.

" } }, "com.amazonaws.ec2#DescribeSpotFleetRequestHistoryMaxResults": { @@ -26740,7 +27315,7 @@ "Filters": { "target": "com.amazonaws.ec2#FilterList", "traits": { - "smithy.api#documentation": "

One or more filters.

\n\t\t ", + "smithy.api#documentation": "

One or more filters.

\n\t\t ", "smithy.api#xmlName": "Filter" } }, @@ -29290,6 +29865,16 @@ "com.amazonaws.ec2#Double": { "type": "double" }, + "com.amazonaws.ec2#DoubleWithConstraints": { + "type": "double", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 0.001, + "max": 99.999 + } + } + }, "com.amazonaws.ec2#EbsBlockDevice": { "type": "structure", "members": { @@ -29749,7 +30334,7 @@ "Type": { "target": "com.amazonaws.ec2#String", "traits": { - "smithy.api#documentation": "

The type of Elastic Graphics accelerator. For more information about the values to specify for\n Type, see Elastic Graphics Basics, specifically the Elastic Graphics accelerator column, in the Amazon Elastic Compute Cloud User Guide for Windows\n Instances.

", + "smithy.api#documentation": "

The type of Elastic Graphics accelerator. For more information about the values to specify for\n Type, see Elastic Graphics Basics, specifically the Elastic Graphics accelerator column, in the \n Amazon Elastic Compute Cloud User Guide for Windows Instances.

", "smithy.api#required": {} } } @@ -30709,7 +31294,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "EventSubType", - "smithy.api#documentation": "

The event.

\n\n

The following are the error events:

\n \n\n

The following are the fleetRequestChange events:

\n \n\n

The following are the instanceChange events:

\n \n\n

The following are the Information events:

\n ", + "smithy.api#documentation": "

The event.

\n \n

\n error events:

\n \n\n

\n fleetRequestChange events:

\n \n\n

\n instanceChange events:

\n \n\n

\n Information events:

\n ", "smithy.api#xmlName": "eventSubType" } }, @@ -31804,6 +32389,39 @@ "com.amazonaws.ec2#ExportVmTaskId": { "type": "string" }, + "com.amazonaws.ec2#FailedCapacityReservationFleetCancellationResult": { + "type": "structure", + "members": { + "CapacityReservationFleetId": { + "target": "com.amazonaws.ec2#CapacityReservationFleetId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationFleetId", + "smithy.api#documentation": "

The ID of the Capacity Reservation Fleet that could not be cancelled.

", + "smithy.api#xmlName": "capacityReservationFleetId" + } + }, + "CancelCapacityReservationFleetError": { + "target": "com.amazonaws.ec2#CancelCapacityReservationFleetError", + "traits": { + "aws.protocols#ec2QueryName": "CancelCapacityReservationFleetError", + "smithy.api#documentation": "

Information about the Capacity Reservation Fleet cancellation error.

", + "smithy.api#xmlName": "cancelCapacityReservationFleetError" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a Capacity Reservation Fleet that could not be cancelled.

" + } + }, + "com.amazonaws.ec2#FailedCapacityReservationFleetCancellationResultSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#FailedCapacityReservationFleetCancellationResult", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, "com.amazonaws.ec2#FailedQueuedPurchaseDeletion": { "type": "structure", "members": { @@ -31961,6 +32579,122 @@ ] } }, + "com.amazonaws.ec2#FleetCapacityReservation": { + "type": "structure", + "members": { + "CapacityReservationId": { + "target": "com.amazonaws.ec2#CapacityReservationId", + "traits": { + "aws.protocols#ec2QueryName": "CapacityReservationId", + "smithy.api#documentation": "

The ID of the Capacity Reservation.

", + "smithy.api#xmlName": "capacityReservationId" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZoneId", + "smithy.api#documentation": "

The ID of the Availability Zone in which the Capacity Reservation reserves capacity.

", + "smithy.api#xmlName": "availabilityZoneId" + } + }, + "InstanceType": { + "target": "com.amazonaws.ec2#InstanceType", + "traits": { + "aws.protocols#ec2QueryName": "InstanceType", + "smithy.api#documentation": "

The instance type for which the Capacity Reservation reserves capacity.

", + "smithy.api#xmlName": "instanceType" + } + }, + "InstancePlatform": { + "target": "com.amazonaws.ec2#CapacityReservationInstancePlatform", + "traits": { + "aws.protocols#ec2QueryName": "InstancePlatform", + "smithy.api#documentation": "

The type of operating system for which the Capacity Reservation reserves capacity.

", + "smithy.api#xmlName": "instancePlatform" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "AvailabilityZone", + "smithy.api#documentation": "

The Availability Zone in which the Capacity Reservation reserves capacity.

", + "smithy.api#xmlName": "availabilityZone" + } + }, + "TotalInstanceCount": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "aws.protocols#ec2QueryName": "TotalInstanceCount", + "smithy.api#documentation": "

The total number of instances for which the Capacity Reservation reserves capacity.

", + "smithy.api#xmlName": "totalInstanceCount" + } + }, + "FulfilledCapacity": { + "target": "com.amazonaws.ec2#Double", + "traits": { + "aws.protocols#ec2QueryName": "FulfilledCapacity", + "smithy.api#documentation": "

The number of capacity units fulfilled by the Capacity Reservation. For more information, see \n\t\t\t\n\t\t\t\tTotal target capacity in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "fulfilledCapacity" + } + }, + "EbsOptimized": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "EbsOptimized", + "smithy.api#documentation": "

Indicates whether the Capacity Reservation reserves capacity for EBS-optimized instance types.

", + "smithy.api#xmlName": "ebsOptimized" + } + }, + "CreateDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "aws.protocols#ec2QueryName": "CreateDate", + "smithy.api#documentation": "

The date and time at which the Capacity Reservation was created.

", + "smithy.api#xmlName": "createDate" + } + }, + "Weight": { + "target": "com.amazonaws.ec2#DoubleWithConstraints", + "traits": { + "aws.protocols#ec2QueryName": "Weight", + "smithy.api#documentation": "

The weight of the instance type in the Capacity Reservation Fleet. For more information, \n\t\t\tsee \n\t\t\t\tInstance type weight in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "weight" + } + }, + "Priority": { + "target": "com.amazonaws.ec2#IntegerWithConstraints", + "traits": { + "aws.protocols#ec2QueryName": "Priority", + "smithy.api#documentation": "

The priority of the instance type in the Capacity Reservation Fleet. For more information, \n\t\t\tsee \n\t\t\t\tInstance type priority in the Amazon EC2 User Guide.

", + "smithy.api#xmlName": "priority" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a Capacity Reservation in a Capacity Reservation Fleet.

" + } + }, + "com.amazonaws.ec2#FleetCapacityReservationSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#FleetCapacityReservation", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.ec2#FleetCapacityReservationTenancy": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "default", + "name": "default" + } + ] + } + }, "com.amazonaws.ec2#FleetCapacityReservationUsageStrategy": { "type": "string", "traits": { @@ -32191,6 +32925,17 @@ "target": "com.amazonaws.ec2#FleetId" } }, + "com.amazonaws.ec2#FleetInstanceMatchCriteria": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "open", + "name": "open" + } + ] + } + }, "com.amazonaws.ec2#FleetLaunchTemplateConfig": { "type": "structure", "members": { @@ -32892,7 +33637,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "ShellVersion", - "smithy.api#documentation": "

The version of the AWS Shell that was used to create the bitstream.

", + "smithy.api#documentation": "

The version of the Amazon Web Services Shell that was used to create the bitstream.

", "smithy.api#xmlName": "shellVersion" } }, @@ -32932,7 +33677,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "OwnerId", - "smithy.api#documentation": "

The AWS account ID of the AFI owner.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the AFI.

", "smithy.api#xmlName": "ownerId" } }, @@ -34821,7 +35566,7 @@ "target": "com.amazonaws.ec2#GetVpnConnectionDeviceSampleConfigurationResult" }, "traits": { - "smithy.api#documentation": "

Download an AWS-provided sample configuration file to be used with the customer\n gateway device specified for your Site-to-Site VPN connection.

" + "smithy.api#documentation": "

Download an Amazon Web Services-provided sample configuration file to be used with the customer\n gateway device specified for your Site-to-Site VPN connection.

" } }, "com.amazonaws.ec2#GetVpnConnectionDeviceSampleConfigurationRequest": { @@ -36697,7 +37442,7 @@ "UsageOperation": { "target": "com.amazonaws.ec2#String", "traits": { - "smithy.api#documentation": "

The usage operation value. For more information, see AMI billing information fields in the Amazon Elastic Compute Cloud User Guide.

" + "smithy.api#documentation": "

The usage operation value. For more information, see Licensing options in the VM Import/Export User Guide.

" } }, "BootMode": { @@ -39217,7 +39962,7 @@ "HttpEndpoint": { "target": "com.amazonaws.ec2#InstanceMetadataEndpointState", "traits": { - "smithy.api#documentation": "

This parameter enables or disables the HTTP metadata endpoint on your instances. If\n the parameter is not specified, the default state is enabled.

\n \n

If you specify a value of disabled, you will not be able to access your\n instance metadata.

\n
" + "smithy.api#documentation": "

Enables or disables the HTTP metadata endpoint on your instances. If the parameter is not \n specified, the default state is enabled.

\n

If you specify a value of disabled, you will not be able to access your\n instance metadata.

" } }, "HttpProtocolIpv6": { @@ -39262,7 +40007,7 @@ "target": "com.amazonaws.ec2#InstanceMetadataEndpointState", "traits": { "aws.protocols#ec2QueryName": "HttpEndpoint", - "smithy.api#documentation": "

This parameter enables or disables the HTTP metadata endpoint on your instances. If\n the parameter is not specified, the default state is enabled.

\n \n

If you specify a value of disabled, you will not be able to access your\n instance metadata.

\n
", + "smithy.api#documentation": "

Indicates whether the HTTP metadata endpoint on your instances is enabled or disabled.

", "smithy.api#xmlName": "httpEndpoint" } }, @@ -39270,7 +40015,7 @@ "target": "com.amazonaws.ec2#InstanceMetadataProtocolState", "traits": { "aws.protocols#ec2QueryName": "HttpProtocolIpv6", - "smithy.api#documentation": "

Whether or not the IPv6 endpoint for the instance metadata service is enabled or disabled.

", + "smithy.api#documentation": "

Indicates whether the IPv6 endpoint for the instance metadata service is enabled or disabled.

", "smithy.api#xmlName": "httpProtocolIpv6" } } @@ -39658,7 +40403,7 @@ } }, "NetworkInterfaceId": { - "target": "com.amazonaws.ec2#String", + "target": "com.amazonaws.ec2#NetworkInterfaceId", "traits": { "aws.protocols#ec2QueryName": "NetworkInterfaceId", "smithy.api#documentation": "

The ID of the network interface.

\n

If you are creating a Spot Fleet, omit this parameter because you can’t specify a network interface ID in a launch specification.

", @@ -42188,6 +42933,15 @@ "com.amazonaws.ec2#Integer": { "type": "integer" }, + "com.amazonaws.ec2#IntegerWithConstraints": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 0 + } + } + }, "com.amazonaws.ec2#IntegrateServices": { "type": "structure", "members": { @@ -44395,7 +45149,7 @@ } }, "SubnetId": { - "target": "com.amazonaws.ec2#String", + "target": "com.amazonaws.ec2#SubnetId", "traits": { "aws.protocols#ec2QueryName": "SubnetId", "smithy.api#documentation": "

The ID of the subnet in which to launch the instances.

", @@ -44988,7 +45742,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "UserId", - "smithy.api#documentation": "

The AWS account ID.

", + "smithy.api#documentation": "

The Amazon Web Services account ID.

", "smithy.api#xmlName": "userId" } }, @@ -45055,7 +45809,7 @@ "UserId": { "target": "com.amazonaws.ec2#String", "traits": { - "smithy.api#documentation": "

The AWS account ID.

" + "smithy.api#documentation": "

The Amazon Web Services account ID.

" } } }, @@ -45086,7 +45840,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "OwnerId", - "smithy.api#documentation": "

The AWS account ID that owns the local gateway.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the local gateway.

", "smithy.api#xmlName": "ownerId" } }, @@ -45187,7 +45941,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "OwnerId", - "smithy.api#documentation": "

The AWS account ID that owns the local gateway route.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the local gateway route.

", "smithy.api#xmlName": "ownerId" } } @@ -45271,7 +46025,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "OwnerId", - "smithy.api#documentation": "

The AWS account ID that owns the local gateway route table.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the local gateway route table.

", "smithy.api#xmlName": "ownerId" } }, @@ -45361,7 +46115,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "OwnerId", - "smithy.api#documentation": "

The AWS account ID that owns the local gateway virtual interface group association.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the local gateway virtual interface group association.

", "smithy.api#xmlName": "ownerId" } }, @@ -45454,7 +46208,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "OwnerId", - "smithy.api#documentation": "

The AWS account ID that owns the local gateway route table for the association.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the local gateway route table for the association.

", "smithy.api#xmlName": "ownerId" } }, @@ -45590,7 +46344,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "OwnerId", - "smithy.api#documentation": "

The AWS account ID that owns the local gateway virtual interface.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the local gateway virtual interface.

", "smithy.api#xmlName": "ownerId" } }, @@ -45638,7 +46392,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "OwnerId", - "smithy.api#documentation": "

The AWS account ID that owns the local gateway virtual interface group.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the local gateway virtual interface group.

", "smithy.api#xmlName": "ownerId" } }, @@ -46013,7 +46767,7 @@ "OptInStatus": { "target": "com.amazonaws.ec2#ModifyAvailabilityZoneOptInStatus", "traits": { - "smithy.api#documentation": "

Indicates whether you are opted in to the Local Zone group or Wavelength Zone group. The\n only valid value is opted-in. You must contact AWS Support to opt out of a Local Zone group, or Wavelength Zone group.

", + "smithy.api#documentation": "

Indicates whether you are opted in to the Local Zone group or Wavelength Zone group. The\n only valid value is opted-in. You must contact Amazon Web Services Support to opt out of a Local Zone or Wavelength Zone group.

", "smithy.api#required": {} } }, @@ -46065,6 +46819,67 @@ "smithy.api#documentation": "

Modifies a Capacity Reservation's capacity and the conditions under which it is to be released. You\n\t\t\tcannot change a Capacity Reservation's instance type, EBS optimization, instance store settings,\n\t\t\tplatform, Availability Zone, or instance eligibility. If you need to modify any of these\n\t\t\tattributes, we recommend that you cancel the Capacity Reservation, and then create a new one with\n\t\t\tthe required attributes.

" } }, + "com.amazonaws.ec2#ModifyCapacityReservationFleet": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#ModifyCapacityReservationFleetRequest" + }, + "output": { + "target": "com.amazonaws.ec2#ModifyCapacityReservationFleetResult" + }, + "traits": { + "smithy.api#documentation": "

Modifies a Capacity Reservation Fleet.

\n\t\t

When you modify the total target capacity of a Capacity Reservation Fleet, the Fleet automatically \n\t\t\tcreates new Capacity Reservations, or modifies or cancels existing Capacity Reservations in the Fleet \n\t\t\tto meet the new total target capacity. When you modify the end date for the Fleet, the end dates for \n\t\t\tall of the individual Capacity Reservations in the Fleet are updated accordingly.

" + } + }, + "com.amazonaws.ec2#ModifyCapacityReservationFleetRequest": { + "type": "structure", + "members": { + "CapacityReservationFleetId": { + "target": "com.amazonaws.ec2#CapacityReservationFleetId", + "traits": { + "smithy.api#documentation": "

The ID of the Capacity Reservation Fleet to modify.

", + "smithy.api#required": {} + } + }, + "TotalTargetCapacity": { + "target": "com.amazonaws.ec2#Integer", + "traits": { + "smithy.api#documentation": "

The total number of capacity units to be reserved by the Capacity Reservation Fleet. This value, \n\t\t\ttogether with the instance type weights that you assign to each instance type used by the Fleet \n\t\t\tdetermine the number of instances for which the Fleet reserves capacity. Both values are based on \n\t\t\tunits that make sense for your workload. For more information, see Total target capacity \n\t\t\tin the Amazon EC2 User Guide.

" + } + }, + "EndDate": { + "target": "com.amazonaws.ec2#MillisecondDateTime", + "traits": { + "smithy.api#documentation": "

The date and time at which the Capacity Reservation Fleet expires. When the Capacity Reservation \n\t\t\tFleet expires, its state changes to expired and all of the Capacity Reservations in the \n\t\t\tFleet expire.

\t\n\t\t

The Capacity Reservation Fleet expires within an hour after the specified time. For example, if you \n\t\t\tspecify 5/31/2019, 13:30:55, the Capacity Reservation Fleet is guaranteed \n\t\t\tto expire between 13:30:55 and 14:30:55 on 5/31/2019.

\n\t\t

You can't specify EndDate and \n\t\t\tRemoveEndDate in the same request.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + }, + "RemoveEndDate": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to remove the end date from the Capacity Reservation Fleet. If you remove the \n\t\t\tend date, the Capacity Reservation Fleet does not expire and it remains active until you explicitly \n\t\t\tcancel it using the CancelCapacityReservationFleet action.

\n\t\t

You can't specify RemoveEndDate and \n\t\t\tEndDate in the same request.

" + } + } + } + }, + "com.amazonaws.ec2#ModifyCapacityReservationFleetResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "smithy.api#xmlName": "return" + } + } + } + }, "com.amazonaws.ec2#ModifyCapacityReservationRequest": { "type": "structure", "members": { @@ -46428,7 +47243,7 @@ "UserIds": { "target": "com.amazonaws.ec2#UserIdStringList", "traits": { - "smithy.api#documentation": "

The AWS account IDs. This parameter is valid only when modifying the loadPermission attribute.

", + "smithy.api#documentation": "

The Amazon Web Services account IDs. This parameter is valid only when modifying the loadPermission attribute.

", "smithy.api#xmlName": "UserId" } }, @@ -46558,7 +47373,7 @@ "target": "com.amazonaws.ec2#ModifyIdFormatRequest" }, "traits": { - "smithy.api#documentation": "

Modifies the ID format for the specified resource on a per-Region basis. You can\n specify that resources should receive longer IDs (17-character IDs) when they are\n created.

\n

This request can only be used to modify longer ID settings for resource types that\n are within the opt-in period. Resources currently in their opt-in period include:\n bundle | conversion-task | customer-gateway | dhcp-options |\n elastic-ip-allocation | elastic-ip-association |\n export-task | flow-log | image |\n import-task | internet-gateway | network-acl\n | network-acl-association | network-interface |\n network-interface-attachment | prefix-list |\n route-table | route-table-association |\n security-group | subnet |\n subnet-cidr-block-association | vpc |\n vpc-cidr-block-association | vpc-endpoint | vpc-peering-connection | vpn-connection | vpn-gateway.

\n

This setting applies to the IAM user who makes the request; it does not apply to the\n entire AWS account. By default, an IAM user defaults to the same settings as the root user. If\n you're using this action as the root user, then these settings apply to the entire account,\n unless an IAM user explicitly overrides these settings for themselves. For more information,\n see Resource IDs \n in the Amazon Elastic Compute Cloud User Guide.

\n

Resources created with longer IDs are visible to all IAM roles and users, regardless\n of these settings and provided that they have permission to use the relevant\n Describe command for the resource type.

" + "smithy.api#documentation": "

Modifies the ID format for the specified resource on a per-Region basis. You can\n specify that resources should receive longer IDs (17-character IDs) when they are\n created.

\n

This request can only be used to modify longer ID settings for resource types that\n are within the opt-in period. Resources currently in their opt-in period include:\n bundle | conversion-task | customer-gateway | dhcp-options |\n elastic-ip-allocation | elastic-ip-association |\n export-task | flow-log | image |\n import-task | internet-gateway | network-acl\n | network-acl-association | network-interface |\n network-interface-attachment | prefix-list |\n route-table | route-table-association |\n security-group | subnet |\n subnet-cidr-block-association | vpc |\n vpc-cidr-block-association | vpc-endpoint | vpc-peering-connection | vpn-connection | vpn-gateway.

\n

This setting applies to the IAM user who makes the request; it does not apply to the\n entire Amazon Web Services account. By default, an IAM user defaults to the same settings as the root user. If\n you're using this action as the root user, then these settings apply to the entire account,\n unless an IAM user explicitly overrides these settings for themselves. For more information,\n see Resource IDs \n in the Amazon Elastic Compute Cloud User Guide.

\n

Resources created with longer IDs are visible to all IAM roles and users, regardless\n of these settings and provided that they have permission to use the relevant\n Describe command for the resource type.

" } }, "com.amazonaws.ec2#ModifyIdFormatRequest": { @@ -47735,7 +48550,7 @@ "target": "com.amazonaws.ec2#ModifyTrafficMirrorFilterNetworkServicesResult" }, "traits": { - "smithy.api#documentation": "

Allows or restricts mirroring network services.

\n

By default, Amazon DNS network services are not eligible for Traffic Mirror. Use AddNetworkServices to add network services to a Traffic Mirror filter. When a network service is added to the Traffic Mirror filter, all traffic related to that network service will be mirrored.\n When you no longer want to mirror network services, use RemoveNetworkServices to remove the network services from the Traffic Mirror filter.\n

\n

For information about filter rule properties, see \n Network Services in the Traffic Mirroring User Guide .

" + "smithy.api#documentation": "

Allows or restricts mirroring network services.

\n

By default, Amazon DNS network services are not eligible for Traffic Mirror. Use AddNetworkServices to add network services to a Traffic Mirror filter. When a network service is added to the Traffic Mirror filter, all traffic related to that network service will be mirrored.\n When you no longer want to mirror network services, use RemoveNetworkServices to remove the network services from the Traffic Mirror filter.\n

" } }, "com.amazonaws.ec2#ModifyTrafficMirrorFilterNetworkServicesRequest": { @@ -47808,7 +48623,7 @@ "TrafficDirection": { "target": "com.amazonaws.ec2#TrafficDirection", "traits": { - "smithy.api#documentation": "

The type of traffic (ingress | egress) to assign to the rule.

" + "smithy.api#documentation": "

The type of traffic to assign to the rule.

" } }, "RuleNumber": { @@ -48640,7 +49455,7 @@ "target": "com.amazonaws.ec2#ModifyVpcEndpointServicePermissionsResult" }, "traits": { - "smithy.api#documentation": "

Modifies the permissions for your VPC endpoint service. You can add or remove permissions for service consumers (IAM users, \n\t IAM roles, and AWS accounts) to connect to your endpoint service.

\n\t

If you grant permissions to all principals, the service is public. Any users who know the name of a\n\t public service can send a request to attach an endpoint. If the service does not require manual approval,\n\t attachments are automatically approved.

" + "smithy.api#documentation": "

Modifies the permissions for your VPC endpoint service. You can add or remove permissions for service consumers (IAM users, \n\t IAM roles, and Amazon Web Services accounts) to connect to your endpoint service.

\n\t

If you grant permissions to all principals, the service is public. Any users who know the name of a\n\t public service can send a request to attach an endpoint. If the service does not require manual approval,\n\t attachments are automatically approved.

" } }, "com.amazonaws.ec2#ModifyVpcEndpointServicePermissionsRequest": { @@ -54127,7 +54942,7 @@ "NetworkBorderGroup": { "target": "com.amazonaws.ec2#String", "traits": { - "smithy.api#documentation": "

The set of Availability Zones, Local Zones, or Wavelength Zones from which AWS advertises\n IP addresses.

\n

If you provide an incorrect network border group, you will receive an InvalidAddress.NotFound error. For more information, see Error Codes.

\n \n

You cannot use a network border group with EC2 Classic. If you attempt this operation on EC2 classic, you will receive an InvalidParameterCombination error. For more information, see Error Codes.

\n
" + "smithy.api#documentation": "

The set of Availability Zones, Local Zones, or Wavelength Zones from which Amazon Web Services advertises\n IP addresses.

\n

If you provide an incorrect network border group, you receive an InvalidAddress.NotFound error.

\n

You cannot use a network border group with EC2 Classic. If you attempt this operation on EC2 classic, you \n receive an InvalidParameterCombination error.

" } }, "DryRun": { @@ -55514,6 +56329,62 @@ "smithy.api#documentation": "

Describes a launch request for one or more instances, and includes \n owner, requester, and security group information that applies to all \n instances in the launch request.

" } }, + "com.amazonaws.ec2#ReservationFleetInstanceSpecification": { + "type": "structure", + "members": { + "InstanceType": { + "target": "com.amazonaws.ec2#InstanceType", + "traits": { + "smithy.api#documentation": "

The instance type for which the Capacity Reservation Fleet reserves capacity.

" + } + }, + "InstancePlatform": { + "target": "com.amazonaws.ec2#CapacityReservationInstancePlatform", + "traits": { + "smithy.api#documentation": "

The type of operating system for which the Capacity Reservation Fleet reserves capacity.

" + } + }, + "Weight": { + "target": "com.amazonaws.ec2#DoubleWithConstraints", + "traits": { + "smithy.api#documentation": "

The number of capacity units provided by the specified instance type. This value, together with the \n\t\t\ttotal target capacity that you specify for the Fleet determine the number of instances for which the \n\t\t\tFleet reserves capacity. Both values are based on units that make sense for your workload. For more \n\t\t\tinformation, see Total target capacity \n\t\t\tin the Amazon EC2 User Guide.

" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The Availability Zone in which the Capacity Reservation Fleet reserves the capacity. A Capacity \n\t\t\tReservation Fleet can't span Availability Zones. All instance type specifications that you specify \n\t\t\tfor the Fleet must use the same Availability Zone.

" + } + }, + "AvailabilityZoneId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "smithy.api#documentation": "

The ID of the Availability Zone in which the Capacity Reservation Fleet reserves the capacity. A \n\t\t\tCapacity Reservation Fleet can't span Availability Zones. All instance type specifications that you \n\t\t\tspecify for the Fleet must use the same Availability Zone.

" + } + }, + "EbsOptimized": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the Capacity Reservation Fleet supports EBS-optimized instances types. This \n\t\t\toptimization provides dedicated throughput to Amazon EBS and an optimized configuration stack \n\t\t\tto provide optimal I/O performance. This optimization isn't available with all instance types. Additional \n\t\t\tusage charges apply when using EBS-optimized instance types.

" + } + }, + "Priority": { + "target": "com.amazonaws.ec2#IntegerWithConstraints", + "traits": { + "smithy.api#documentation": "

The priority to assign to the instance type. This value is used to determine which of the instance types \n\t\t\tspecified for the Fleet should be prioritized for use. A lower value indicates a high priority. For more \n\t\t\tinformation, see Instance type priority \n\t\t\tin the Amazon EC2 User Guide.

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

Information about an instance type to use in a Capacity Reservation Fleet.

" + } + }, + "com.amazonaws.ec2#ReservationFleetInstanceSpecificationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ec2#ReservationFleetInstanceSpecification" + } + }, "com.amazonaws.ec2#ReservationId": { "type": "string" }, @@ -59192,6 +60063,13 @@ "smithy.api#required": {} } }, + "Filters": { + "target": "com.amazonaws.ec2#FilterList", + "traits": { + "smithy.api#documentation": "

One or more filters.

", + "smithy.api#xmlName": "Filter" + } + }, "MaxResults": { "target": "com.amazonaws.ec2#MaxResults", "traits": { @@ -59209,14 +60087,6 @@ "traits": { "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n and provides an error response. If you have the required permissions, the error response is DryRunOperation. \n Otherwise, it is UnauthorizedOperation.

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

One or more filters.

", - "smithy.api#required": {}, - "smithy.api#xmlName": "Filter" - } } } }, @@ -59893,7 +60763,7 @@ "target": "com.amazonaws.ec2#Boolean", "traits": { "aws.protocols#ec2QueryName": "AcceptanceRequired", - "smithy.api#documentation": "

Indicates whether requests from other AWS accounts to create an endpoint to the service must first be accepted.

", + "smithy.api#documentation": "

Indicates whether requests from other Amazon Web Services accounts to create an endpoint to the service must first be accepted.

", "smithy.api#xmlName": "acceptanceRequired" } }, @@ -60006,7 +60876,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "Owner", - "smithy.api#documentation": "

The AWS account ID of the service owner.

", + "smithy.api#documentation": "

The Amazon Web Services account ID of the service owner.

", "smithy.api#xmlName": "owner" } }, @@ -63044,7 +63914,7 @@ "target": "com.amazonaws.ec2#ResourceType", "traits": { "aws.protocols#ec2QueryName": "ResourceType", - "smithy.api#documentation": "

The type of resource to tag on creation. The possible values are: \n \t capacity-reservation | carrier-gateway |\n client-vpn-endpoint | customer-gateway |\n \t dedicated-host | dhcp-options | \n \t egress-only-internet-gateway | elastic-gpu | \n \t elastic-ip | export-image-task |\n export-instance-task | fleet | fpga-image |\n \t host-reservation | image | import-image-task |\n \t import-snapshot-task | instance | instance-event-window |\n internet-gateway | ipv4pool-ec2 | ipv6pool-ec2 |\n \t key-pair | launch-template | local-gateway-route-table-vpc-association |\n \t natgateway | network-acl | network-insights-analysis | \n \t network-insights-path | network-interface | \n \t placement-group | prefix-list | reserved-instances | \n \t route-table | security-group | security-group-rule | \n \t snapshot | spot-fleet-request | spot-instances-request | subnet | \n traffic-mirror-filter | traffic-mirror-session | traffic-mirror-target | \n \t transit-gateway | transit-gateway-attachment | \n \t transit-gateway-multicast-domain | transit-gateway-route-table |\n volume | vpc | vpc-endpoint | vpc-endpoint-service | \n \t vpc-flow-log | vpc-peering-connection |\n \t vpn-connection | vpn-gateway.

\n

To tag a resource after it has been created, see CreateTags.

", + "smithy.api#documentation": "

The type of resource to tag on creation.

", "smithy.api#xmlName": "resourceType" } }, @@ -68681,7 +69551,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "OwnerId", - "smithy.api#documentation": "

The ID of the AWS account that owns the VPC endpoint.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the VPC endpoint.

", "smithy.api#xmlName": "ownerId" } }, @@ -68721,7 +69591,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "VpcEndpointOwner", - "smithy.api#documentation": "

The AWS account ID of the owner of the VPC endpoint.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the VPC endpoint.

", "smithy.api#xmlName": "vpcEndpointOwner" } }, @@ -68904,7 +69774,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "NetworkBorderGroup", - "smithy.api#documentation": "

The name of the unique set of Availability Zones, Local Zones, or Wavelength Zones from\n which AWS advertises IP addresses, for example, us-east-1-wl1-bos-wlz-1.

", + "smithy.api#documentation": "

The name of the unique set of Availability Zones, Local Zones, or Wavelength Zones from\n which Amazon Web Services advertises IP addresses, for example, us-east-1-wl1-bos-wlz-1.

", "smithy.api#xmlName": "networkBorderGroup" } }, diff --git a/codegen/sdk-codegen/aws-models/efs.2015-02-01.json b/codegen/sdk-codegen/aws-models/efs.2015-02-01.json index bea6312ecb4..a85c33726c9 100644 --- a/codegen/sdk-codegen/aws-models/efs.2015-02-01.json +++ b/codegen/sdk-codegen/aws-models/efs.2015-02-01.json @@ -2590,6 +2590,9 @@ "target": "com.amazonaws.efs#PutAccountPreferencesResponse" }, "errors": [ + { + "target": "com.amazonaws.efs#BadRequest" + }, { "target": "com.amazonaws.efs#InternalServerError" } diff --git a/codegen/sdk-codegen/aws-models/elasticloadbalancingv2.2015-12-01.json b/codegen/sdk-codegen/aws-models/elasticloadbalancingv2.2015-12-01.json index 7abb33fe97d..296c2638851 100644 --- a/codegen/sdk-codegen/aws-models/elasticloadbalancingv2.2015-12-01.json +++ b/codegen/sdk-codegen/aws-models/elasticloadbalancingv2.2015-12-01.json @@ -1189,6 +1189,12 @@ "traits": { "smithy.api#documentation": "

The tags to assign to the target group.

" } + }, + "IpAddressType": { + "target": "com.amazonaws.elasticloadbalancingv2#TargetGroupIpAddressTypeEnum", + "traits": { + "smithy.api#documentation": "

The type of IP address used for this target group. The possible values are\n ipv4 and ipv6. This is an optional parameter. If not specified,\n the IP address type defaults to ipv4.

" + } } } }, @@ -2949,7 +2955,7 @@ "Key": { "target": "com.amazonaws.elasticloadbalancingv2#LoadBalancerAttributeKey", "traits": { - "smithy.api#documentation": "

The name of the attribute.

\n\n

The following attribute is supported by all load balancers:

\n \n\n

The following attributes are supported by both Application Load Balancers and Network Load\n Balancers:

\n \n\n

The following attributes are supported by only Application Load Balancers:

\n \n\n

The following attribute is supported by Network Load Balancers and Gateway Load\n Balancers:

\n " + "smithy.api#documentation": "

The name of the attribute.

\n\n

The following attribute is supported by all load balancers:

\n \n\n

The following attributes are supported by both Application Load Balancers and Network Load\n Balancers:

\n \n\n

The following attributes are supported by only Application Load Balancers:

\n \n\n

The following attribute is supported by Network Load Balancers and Gateway Load\n Balancers:

\n " } }, "Value": { @@ -3112,7 +3118,7 @@ "HttpCode": { "target": "com.amazonaws.elasticloadbalancingv2#HttpCode", "traits": { - "smithy.api#documentation": "

For Application Load Balancers, you can specify values between 200 and 499, and the\n default value is 200. You can specify multiple values (for example, \"200,202\") or a range of\n values (for example, \"200-299\").

\n

For Network Load Balancers and Gateway Load Balancers, this must be \"200–399\".

" + "smithy.api#documentation": "

For Application Load Balancers, you can specify values between 200 and 499, and the\n default value is 200. You can specify multiple values (for example, \"200,202\") or a range of\n values (for example, \"200-299\").

\n

For Network Load Balancers and Gateway Load Balancers, this must be \"200–399\".

\n

Note that when using shorthand syntax, some values such as commas need to be\n escaped.

" } }, "GrpcCode": { @@ -3123,7 +3129,7 @@ } }, "traits": { - "smithy.api#documentation": "

The codes to use when checking for a successful response from a target. If the protocol\n version is gRPC, these are gRPC codes. Otherwise, these are HTTP codes.

" + "smithy.api#documentation": "

The codes to use when checking for a successful response from a target. If the protocol\n version is gRPC, these are gRPC codes. Otherwise, these are HTTP codes.

" } }, "com.amazonaws.elasticloadbalancingv2#Max": { @@ -4745,6 +4751,12 @@ "traits": { "smithy.api#documentation": "

[HTTP/HTTPS protocol] The protocol version. The possible values are GRPC,\n HTTP1, and HTTP2.

" } + }, + "IpAddressType": { + "target": "com.amazonaws.elasticloadbalancingv2#TargetGroupIpAddressTypeEnum", + "traits": { + "smithy.api#documentation": "

The type of IP address used for this target group. The possible values are\n ipv4 and ipv6. This is an optional parameter. If not specified,\n the IP address type defaults to ipv4.

" + } } }, "traits": { @@ -4816,6 +4828,21 @@ "target": "com.amazonaws.elasticloadbalancingv2#TargetGroupAttribute" } }, + "com.amazonaws.elasticloadbalancingv2#TargetGroupIpAddressTypeEnum": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ipv4", + "name": "IPV4" + }, + { + "value": "ipv6", + "name": "IPV6" + } + ] + } + }, "com.amazonaws.elasticloadbalancingv2#TargetGroupList": { "type": "list", "member": { diff --git a/codegen/sdk-codegen/aws-models/firehose.2015-08-04.json b/codegen/sdk-codegen/aws-models/firehose.2015-08-04.json index 5b15d183090..0d5f4922e9f 100644 --- a/codegen/sdk-codegen/aws-models/firehose.2015-08-04.json +++ b/codegen/sdk-codegen/aws-models/firehose.2015-08-04.json @@ -39,6 +39,272 @@ "smithy.api#pattern": "^arn:" } }, + "com.amazonaws.firehose#AmazonopensearchserviceBufferingHints": { + "type": "structure", + "members": { + "IntervalInSeconds": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceBufferingIntervalInSeconds" + }, + "SizeInMBs": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceBufferingSizeInMBs" + } + } + }, + "com.amazonaws.firehose#AmazonopensearchserviceBufferingIntervalInSeconds": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 60, + "max": 900 + } + } + }, + "com.amazonaws.firehose#AmazonopensearchserviceBufferingSizeInMBs": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.firehose#AmazonopensearchserviceClusterEndpoint": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + }, + "smithy.api#pattern": "^https:" + } + }, + "com.amazonaws.firehose#AmazonopensearchserviceDestinationConfiguration": { + "type": "structure", + "members": { + "RoleARN": { + "target": "com.amazonaws.firehose#RoleARN", + "traits": { + "smithy.api#required": {} + } + }, + "DomainARN": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceDomainARN" + }, + "ClusterEndpoint": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceClusterEndpoint" + }, + "IndexName": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceIndexName", + "traits": { + "smithy.api#required": {} + } + }, + "TypeName": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceTypeName" + }, + "IndexRotationPeriod": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceIndexRotationPeriod" + }, + "BufferingHints": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceBufferingHints" + }, + "RetryOptions": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceRetryOptions" + }, + "S3BackupMode": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceS3BackupMode" + }, + "S3Configuration": { + "target": "com.amazonaws.firehose#S3DestinationConfiguration", + "traits": { + "smithy.api#required": {} + } + }, + "ProcessingConfiguration": { + "target": "com.amazonaws.firehose#ProcessingConfiguration" + }, + "CloudWatchLoggingOptions": { + "target": "com.amazonaws.firehose#CloudWatchLoggingOptions" + }, + "VpcConfiguration": { + "target": "com.amazonaws.firehose#VpcConfiguration" + } + } + }, + "com.amazonaws.firehose#AmazonopensearchserviceDestinationDescription": { + "type": "structure", + "members": { + "RoleARN": { + "target": "com.amazonaws.firehose#RoleARN" + }, + "DomainARN": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceDomainARN" + }, + "ClusterEndpoint": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceClusterEndpoint" + }, + "IndexName": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceIndexName" + }, + "TypeName": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceTypeName" + }, + "IndexRotationPeriod": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceIndexRotationPeriod" + }, + "BufferingHints": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceBufferingHints" + }, + "RetryOptions": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceRetryOptions" + }, + "S3BackupMode": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceS3BackupMode" + }, + "S3DestinationDescription": { + "target": "com.amazonaws.firehose#S3DestinationDescription" + }, + "ProcessingConfiguration": { + "target": "com.amazonaws.firehose#ProcessingConfiguration" + }, + "CloudWatchLoggingOptions": { + "target": "com.amazonaws.firehose#CloudWatchLoggingOptions" + }, + "VpcConfigurationDescription": { + "target": "com.amazonaws.firehose#VpcConfigurationDescription" + } + } + }, + "com.amazonaws.firehose#AmazonopensearchserviceDestinationUpdate": { + "type": "structure", + "members": { + "RoleARN": { + "target": "com.amazonaws.firehose#RoleARN" + }, + "DomainARN": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceDomainARN" + }, + "ClusterEndpoint": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceClusterEndpoint" + }, + "IndexName": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceIndexName" + }, + "TypeName": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceTypeName" + }, + "IndexRotationPeriod": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceIndexRotationPeriod" + }, + "BufferingHints": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceBufferingHints" + }, + "RetryOptions": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceRetryOptions" + }, + "S3Update": { + "target": "com.amazonaws.firehose#S3DestinationUpdate" + }, + "ProcessingConfiguration": { + "target": "com.amazonaws.firehose#ProcessingConfiguration" + }, + "CloudWatchLoggingOptions": { + "target": "com.amazonaws.firehose#CloudWatchLoggingOptions" + } + } + }, + "com.amazonaws.firehose#AmazonopensearchserviceDomainARN": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + }, + "smithy.api#pattern": "^arn:" + } + }, + "com.amazonaws.firehose#AmazonopensearchserviceIndexName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 80 + }, + "smithy.api#pattern": ".*" + } + }, + "com.amazonaws.firehose#AmazonopensearchserviceIndexRotationPeriod": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "NoRotation", + "name": "NoRotation" + }, + { + "value": "OneHour", + "name": "OneHour" + }, + { + "value": "OneDay", + "name": "OneDay" + }, + { + "value": "OneWeek", + "name": "OneWeek" + }, + { + "value": "OneMonth", + "name": "OneMonth" + } + ] + } + }, + "com.amazonaws.firehose#AmazonopensearchserviceRetryDurationInSeconds": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 0, + "max": 7200 + } + } + }, + "com.amazonaws.firehose#AmazonopensearchserviceRetryOptions": { + "type": "structure", + "members": { + "DurationInSeconds": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceRetryDurationInSeconds" + } + } + }, + "com.amazonaws.firehose#AmazonopensearchserviceS3BackupMode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "FailedDocumentsOnly", + "name": "FailedDocumentsOnly" + }, + { + "value": "AllDocuments", + "name": "AllDocuments" + } + ] + } + }, + "com.amazonaws.firehose#AmazonopensearchserviceTypeName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + }, + "smithy.api#pattern": ".*" + } + }, "com.amazonaws.firehose#BlockSizeBytes": { "type": "integer", "traits": { @@ -302,6 +568,9 @@ "smithy.api#documentation": "

The destination in Amazon ES. You can specify only one destination.

" } }, + "AmazonopensearchserviceDestinationConfiguration": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceDestinationConfiguration" + }, "SplunkDestinationConfiguration": { "target": "com.amazonaws.firehose#SplunkDestinationConfiguration", "traits": { @@ -872,6 +1141,9 @@ "smithy.api#documentation": "

The destination in Amazon ES.

" } }, + "AmazonopensearchserviceDestinationDescription": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceDestinationDescription" + }, "SplunkDestinationDescription": { "target": "com.amazonaws.firehose#SplunkDestinationDescription", "traits": { @@ -4386,6 +4658,9 @@ "smithy.api#documentation": "

Describes an update for a destination in Amazon ES.

" } }, + "AmazonopensearchserviceDestinationUpdate": { + "target": "com.amazonaws.firehose#AmazonopensearchserviceDestinationUpdate" + }, "SplunkDestinationUpdate": { "target": "com.amazonaws.firehose#SplunkDestinationUpdate", "traits": { diff --git a/codegen/sdk-codegen/aws-models/frauddetector.2019-11-15.json b/codegen/sdk-codegen/aws-models/frauddetector.2019-11-15.json index 21a3b87b9ba..26909067ac9 100644 --- a/codegen/sdk-codegen/aws-models/frauddetector.2019-11-15.json +++ b/codegen/sdk-codegen/aws-models/frauddetector.2019-11-15.json @@ -39,9 +39,15 @@ { "target": "com.amazonaws.frauddetector#BatchGetVariable" }, + { + "target": "com.amazonaws.frauddetector#CancelBatchImportJob" + }, { "target": "com.amazonaws.frauddetector#CancelBatchPredictionJob" }, + { + "target": "com.amazonaws.frauddetector#CreateBatchImportJob" + }, { "target": "com.amazonaws.frauddetector#CreateBatchPredictionJob" }, @@ -60,6 +66,9 @@ { "target": "com.amazonaws.frauddetector#CreateVariable" }, + { + "target": "com.amazonaws.frauddetector#DeleteBatchImportJob" + }, { "target": "com.amazonaws.frauddetector#DeleteBatchPredictionJob" }, @@ -75,6 +84,9 @@ { "target": "com.amazonaws.frauddetector#DeleteEvent" }, + { + "target": "com.amazonaws.frauddetector#DeleteEventsByEventType" + }, { "target": "com.amazonaws.frauddetector#DeleteEventType" }, @@ -105,9 +117,15 @@ { "target": "com.amazonaws.frauddetector#DescribeModelVersions" }, + { + "target": "com.amazonaws.frauddetector#GetBatchImportJobs" + }, { "target": "com.amazonaws.frauddetector#GetBatchPredictionJobs" }, + { + "target": "com.amazonaws.frauddetector#GetDeleteEventsByEventTypeStatus" + }, { "target": "com.amazonaws.frauddetector#GetDetectors" }, @@ -117,6 +135,9 @@ { "target": "com.amazonaws.frauddetector#GetEntityTypes" }, + { + "target": "com.amazonaws.frauddetector#GetEvent" + }, { "target": "com.amazonaws.frauddetector#GetEventPrediction" }, @@ -171,6 +192,9 @@ { "target": "com.amazonaws.frauddetector#PutOutcome" }, + { + "target": "com.amazonaws.frauddetector#SendEvent" + }, { "target": "com.amazonaws.frauddetector#TagResource" }, @@ -186,6 +210,9 @@ { "target": "com.amazonaws.frauddetector#UpdateDetectorVersionStatus" }, + { + "target": "com.amazonaws.frauddetector#UpdateEventLabel" + }, { "target": "com.amazonaws.frauddetector#UpdateModel" }, @@ -445,6 +472,98 @@ } } }, + "com.amazonaws.frauddetector#BatchImport": { + "type": "structure", + "members": { + "jobId": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

The ID of the batch import job.

" + } + }, + "status": { + "target": "com.amazonaws.frauddetector#AsyncJobStatus", + "traits": { + "smithy.api#documentation": "

The status of the batch import job.

" + } + }, + "failureReason": { + "target": "com.amazonaws.frauddetector#string", + "traits": { + "smithy.api#documentation": "

The reason batch import job failed.

" + } + }, + "startTime": { + "target": "com.amazonaws.frauddetector#time", + "traits": { + "smithy.api#documentation": "

Timestamp of when the batch import job started.

" + } + }, + "completionTime": { + "target": "com.amazonaws.frauddetector#time", + "traits": { + "smithy.api#documentation": "

Timestamp of when batch import job completed.

" + } + }, + "inputPath": { + "target": "com.amazonaws.frauddetector#s3BucketLocation", + "traits": { + "smithy.api#documentation": "

The Amazon S3 location of your data file for batch import.

" + } + }, + "outputPath": { + "target": "com.amazonaws.frauddetector#s3BucketLocation", + "traits": { + "smithy.api#documentation": "

The Amazon S3 location of your output file.

" + } + }, + "eventTypeName": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

The name of the event type.

" + } + }, + "iamRoleArn": { + "target": "com.amazonaws.frauddetector#iamRoleArn", + "traits": { + "smithy.api#documentation": "

The ARN of the IAM role to use for this job request.

" + } + }, + "arn": { + "target": "com.amazonaws.frauddetector#fraudDetectorArn", + "traits": { + "smithy.api#documentation": "

The ARN of the batch import job.

" + } + }, + "processedRecordsCount": { + "target": "com.amazonaws.frauddetector#Integer", + "traits": { + "smithy.api#documentation": "

The number of records processed by batch import job.

" + } + }, + "failedRecordsCount": { + "target": "com.amazonaws.frauddetector#Integer", + "traits": { + "smithy.api#documentation": "

The number of records that failed to import.

" + } + }, + "totalRecordsCount": { + "target": "com.amazonaws.frauddetector#Integer", + "traits": { + "smithy.api#documentation": "

The total number of records in the batch import job.

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

The batch import job details.

" + } + }, + "com.amazonaws.frauddetector#BatchImportList": { + "type": "list", + "member": { + "target": "com.amazonaws.frauddetector#BatchImport" + } + }, "com.amazonaws.frauddetector#BatchPrediction": { "type": "structure", "members": { @@ -475,7 +594,7 @@ "completionTime": { "target": "com.amazonaws.frauddetector#time", "traits": { - "smithy.api#documentation": "

Timestamp of when the batch prediction job comleted.

" + "smithy.api#documentation": "

Timestamp of when the batch prediction job completed.

" } }, "lastHeartbeatTime": { @@ -549,6 +668,51 @@ "target": "com.amazonaws.frauddetector#BatchPrediction" } }, + "com.amazonaws.frauddetector#CancelBatchImportJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.frauddetector#CancelBatchImportJobRequest" + }, + "output": { + "target": "com.amazonaws.frauddetector#CancelBatchImportJobResult" + }, + "errors": [ + { + "target": "com.amazonaws.frauddetector#AccessDeniedException" + }, + { + "target": "com.amazonaws.frauddetector#InternalServerException" + }, + { + "target": "com.amazonaws.frauddetector#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.frauddetector#ThrottlingException" + }, + { + "target": "com.amazonaws.frauddetector#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Cancels an in-progress batch import job.

" + } + }, + "com.amazonaws.frauddetector#CancelBatchImportJobRequest": { + "type": "structure", + "members": { + "jobId": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

The ID of an in-progress batch import job to cancel.

\n

Amazon Fraud Detector will throw an error if the batch import job is in FAILED, CANCELED, or COMPLETED state.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.frauddetector#CancelBatchImportJobResult": { + "type": "structure", + "members": {} + }, "com.amazonaws.frauddetector#CancelBatchPredictionJob": { "type": "operation", "input": { @@ -605,11 +769,90 @@ } }, "traits": { - "smithy.api#documentation": "

An exception indicating there was a conflict during a delete operation. The following delete operations can cause a conflict exception:

\n\t ", + "smithy.api#documentation": "

An exception indicating there was a conflict during a delete operation.

", "smithy.api#error": "client", "smithy.api#httpError": 409 } }, + "com.amazonaws.frauddetector#CreateBatchImportJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.frauddetector#CreateBatchImportJobRequest" + }, + "output": { + "target": "com.amazonaws.frauddetector#CreateBatchImportJobResult" + }, + "errors": [ + { + "target": "com.amazonaws.frauddetector#AccessDeniedException" + }, + { + "target": "com.amazonaws.frauddetector#InternalServerException" + }, + { + "target": "com.amazonaws.frauddetector#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.frauddetector#ThrottlingException" + }, + { + "target": "com.amazonaws.frauddetector#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a batch import job.

" + } + }, + "com.amazonaws.frauddetector#CreateBatchImportJobRequest": { + "type": "structure", + "members": { + "jobId": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

The ID of the batch import job. The ID cannot be of a past job, unless the job exists in CREATE_FAILED state.

", + "smithy.api#required": {} + } + }, + "inputPath": { + "target": "com.amazonaws.frauddetector#s3BucketLocation", + "traits": { + "smithy.api#documentation": "

The URI that points to the Amazon S3 location of your data file.

", + "smithy.api#required": {} + } + }, + "outputPath": { + "target": "com.amazonaws.frauddetector#s3BucketLocation", + "traits": { + "smithy.api#documentation": "

The URI that points to the Amazon S3 location for storing your results.

", + "smithy.api#required": {} + } + }, + "eventTypeName": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

The name of the event type.

", + "smithy.api#required": {} + } + }, + "iamRoleArn": { + "target": "com.amazonaws.frauddetector#iamRoleArn", + "traits": { + "smithy.api#documentation": "

The ARN of the IAM role created for Amazon S3 bucket that holds your data file. \n The IAM role must have read and write permissions to both input and output S3 buckets.

", + "smithy.api#required": {} + } + }, + "tags": { + "target": "com.amazonaws.frauddetector#tagList", + "traits": { + "smithy.api#documentation": "

A collection of key-value pairs associated with this request.

" + } + } + } + }, + "com.amazonaws.frauddetector#CreateBatchImportJobResult": { + "type": "structure", + "members": {} + }, "com.amazonaws.frauddetector#CreateBatchPredictionJob": { "type": "operation", "input": { @@ -790,7 +1033,7 @@ } }, "detectorVersionId": { - "target": "com.amazonaws.frauddetector#nonEmptyString", + "target": "com.amazonaws.frauddetector#wholeNumberVersionString", "traits": { "smithy.api#documentation": "

The ID for the created detector.

" } @@ -934,7 +1177,13 @@ "externalEventsDetail": { "target": "com.amazonaws.frauddetector#ExternalEventsDetail", "traits": { - "smithy.api#documentation": "

Details for the external events data used for model version training. Required if trainingDataSource is EXTERNAL_EVENTS.

" + "smithy.api#documentation": "

Details of the external events data used for model version training. Required if trainingDataSource is EXTERNAL_EVENTS.

" + } + }, + "ingestedEventsDetail": { + "target": "com.amazonaws.frauddetector#IngestedEventsDetail", + "traits": { + "smithy.api#documentation": "

Details of the ingested events data used for model version training. Required if trainingDataSource is INGESTED_EVENTS.

" } }, "tags": { @@ -961,7 +1210,7 @@ } }, "modelVersionNumber": { - "target": "com.amazonaws.frauddetector#nonEmptyString", + "target": "com.amazonaws.frauddetector#floatVersionString", "traits": { "smithy.api#documentation": "

The model version number of the model version created.

" } @@ -1215,6 +1464,54 @@ "smithy.api#documentation": "

The model training validation messages.

" } }, + "com.amazonaws.frauddetector#DeleteAuditHistory": { + "type": "boolean", + "traits": { + "smithy.api#box": {} + } + }, + "com.amazonaws.frauddetector#DeleteBatchImportJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.frauddetector#DeleteBatchImportJobRequest" + }, + "output": { + "target": "com.amazonaws.frauddetector#DeleteBatchImportJobResult" + }, + "errors": [ + { + "target": "com.amazonaws.frauddetector#AccessDeniedException" + }, + { + "target": "com.amazonaws.frauddetector#InternalServerException" + }, + { + "target": "com.amazonaws.frauddetector#ThrottlingException" + }, + { + "target": "com.amazonaws.frauddetector#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes data that was batch imported to Amazon Fraud Detector.

" + } + }, + "com.amazonaws.frauddetector#DeleteBatchImportJobRequest": { + "type": "structure", + "members": { + "jobId": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

The ID of the batch import job to delete.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.frauddetector#DeleteBatchImportJobResult": { + "type": "structure", + "members": {} + }, "com.amazonaws.frauddetector#DeleteBatchPredictionJob": { "type": "operation", "input": { @@ -1230,9 +1527,6 @@ { "target": "com.amazonaws.frauddetector#InternalServerException" }, - { - "target": "com.amazonaws.frauddetector#ResourceNotFoundException" - }, { "target": "com.amazonaws.frauddetector#ThrottlingException" }, @@ -1447,6 +1741,12 @@ "smithy.api#documentation": "

The name of the event type.

", "smithy.api#required": {} } + }, + "deleteAuditHistory": { + "target": "com.amazonaws.frauddetector#DeleteAuditHistory", + "traits": { + "smithy.api#documentation": "

Specifies whether or not to delete any predictions associated with the event.

" + } } } }, @@ -1480,7 +1780,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes an event type.

\n\t

You cannot delete an event type that is used in a detector or a model.

\n\t

When you delete an entity type, Amazon Fraud Detector permanently deletes that entity type and the data is no longer stored in Amazon Fraud Detector.

" + "smithy.api#documentation": "

Deletes an event type.

\n\t

You cannot delete an event type that is used in a detector or a model.

\n\t

When you delete an event type, Amazon Fraud Detector permanently deletes that event type and the data is no longer stored in Amazon Fraud Detector.

" } }, "com.amazonaws.frauddetector#DeleteEventTypeRequest": { @@ -1499,13 +1799,13 @@ "type": "structure", "members": {} }, - "com.amazonaws.frauddetector#DeleteExternalModel": { + "com.amazonaws.frauddetector#DeleteEventsByEventType": { "type": "operation", "input": { - "target": "com.amazonaws.frauddetector#DeleteExternalModelRequest" + "target": "com.amazonaws.frauddetector#DeleteEventsByEventTypeRequest" }, "output": { - "target": "com.amazonaws.frauddetector#DeleteExternalModelResult" + "target": "com.amazonaws.frauddetector#DeleteEventsByEventTypeResult" }, "errors": [ { @@ -1518,7 +1818,68 @@ "target": "com.amazonaws.frauddetector#InternalServerException" }, { - "target": "com.amazonaws.frauddetector#ThrottlingException" + "target": "com.amazonaws.frauddetector#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.frauddetector#ThrottlingException" + }, + { + "target": "com.amazonaws.frauddetector#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes all events of a particular event type.

" + } + }, + "com.amazonaws.frauddetector#DeleteEventsByEventTypeRequest": { + "type": "structure", + "members": { + "eventTypeName": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

The name of the event type.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.frauddetector#DeleteEventsByEventTypeResult": { + "type": "structure", + "members": { + "eventTypeName": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

Name of event type for which to delete the events.

" + } + }, + "eventsDeletionStatus": { + "target": "com.amazonaws.frauddetector#string", + "traits": { + "smithy.api#documentation": "

The status of the delete request.

" + } + } + } + }, + "com.amazonaws.frauddetector#DeleteExternalModel": { + "type": "operation", + "input": { + "target": "com.amazonaws.frauddetector#DeleteExternalModelRequest" + }, + "output": { + "target": "com.amazonaws.frauddetector#DeleteExternalModelResult" + }, + "errors": [ + { + "target": "com.amazonaws.frauddetector#AccessDeniedException" + }, + { + "target": "com.amazonaws.frauddetector#ConflictException" + }, + { + "target": "com.amazonaws.frauddetector#InternalServerException" + }, + { + "target": "com.amazonaws.frauddetector#ThrottlingException" }, { "target": "com.amazonaws.frauddetector#ValidationException" @@ -2082,7 +2443,7 @@ "type": "structure", "members": { "detectorVersionId": { - "target": "com.amazonaws.frauddetector#nonEmptyString", + "target": "com.amazonaws.frauddetector#wholeNumberVersionString", "traits": { "smithy.api#documentation": "

The detector version ID.

" } @@ -2137,7 +2498,7 @@ } }, "entityId": { - "target": "com.amazonaws.frauddetector#identifier", + "target": "com.amazonaws.frauddetector#entityRestrictedString", "traits": { "smithy.api#documentation": "

The entity ID. If you do not know the entityId, you can pass unknown, which is areserved string literal.

", "smithy.api#required": {} @@ -2187,6 +2548,80 @@ "smithy.api#documentation": "

The entity type details.

" } }, + "com.amazonaws.frauddetector#Event": { + "type": "structure", + "members": { + "eventId": { + "target": "com.amazonaws.frauddetector#string", + "traits": { + "smithy.api#documentation": "

The event ID.

" + } + }, + "eventTypeName": { + "target": "com.amazonaws.frauddetector#string", + "traits": { + "smithy.api#documentation": "

The event type.

" + } + }, + "eventTimestamp": { + "target": "com.amazonaws.frauddetector#string", + "traits": { + "smithy.api#documentation": "

The timestamp that defines when the event under evaluation occurred. The timestamp must be specified using ISO 8601 standard in UTC.

" + } + }, + "eventVariables": { + "target": "com.amazonaws.frauddetector#EventAttributeMap", + "traits": { + "smithy.api#documentation": "

Names of the event type's variables you defined in Amazon Fraud Detector to represent data elements and their corresponding values for the event you are sending for evaluation.

" + } + }, + "currentLabel": { + "target": "com.amazonaws.frauddetector#string", + "traits": { + "smithy.api#documentation": "

The label associated with the event.

" + } + }, + "labelTimestamp": { + "target": "com.amazonaws.frauddetector#string", + "traits": { + "smithy.api#documentation": "

The timestamp associated with the label to update. The timestamp must be specified using ISO 8601 standard in UTC.

" + } + }, + "entities": { + "target": "com.amazonaws.frauddetector#listOfEntities", + "traits": { + "smithy.api#documentation": "

The event entities.

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

The event details.

" + } + }, + "com.amazonaws.frauddetector#EventAttributeMap": { + "type": "map", + "key": { + "target": "com.amazonaws.frauddetector#attributeKey" + }, + "value": { + "target": "com.amazonaws.frauddetector#attributeValue" + } + }, + "com.amazonaws.frauddetector#EventIngestion": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ENABLED", + "name": "ENABLED" + }, + { + "value": "DISABLED", + "name": "DISABLED" + } + ] + } + }, "com.amazonaws.frauddetector#EventType": { "type": "structure", "members": { @@ -2220,6 +2655,18 @@ "smithy.api#documentation": "

The event type entity types.

" } }, + "eventIngestion": { + "target": "com.amazonaws.frauddetector#EventIngestion", + "traits": { + "smithy.api#documentation": "

If Enabled, Amazon Fraud Detector stores event data when you generate a prediction and uses that data to update calculated variables in near real-time. Amazon Fraud Detector uses this data, known as INGESTED_EVENTS, to train your model and improve fraud predictions.

" + } + }, + "ingestedEventStatistics": { + "target": "com.amazonaws.frauddetector#IngestedEventStatistics", + "traits": { + "smithy.api#documentation": "

Data about the stored events.

" + } + }, "lastUpdatedTime": { "target": "com.amazonaws.frauddetector#time", "traits": { @@ -2345,7 +2792,7 @@ "com.amazonaws.frauddetector#ExternalModelEndpointDataBlobMap": { "type": "map", "key": { - "target": "com.amazonaws.frauddetector#string" + "target": "com.amazonaws.frauddetector#sageMakerEndpointIdentifier" }, "value": { "target": "com.amazonaws.frauddetector#ModelEndpointDataBlob" @@ -2483,6 +2930,80 @@ "smithy.api#documentation": "

The message details.

" } }, + "com.amazonaws.frauddetector#GetBatchImportJobs": { + "type": "operation", + "input": { + "target": "com.amazonaws.frauddetector#GetBatchImportJobsRequest" + }, + "output": { + "target": "com.amazonaws.frauddetector#GetBatchImportJobsResult" + }, + "errors": [ + { + "target": "com.amazonaws.frauddetector#AccessDeniedException" + }, + { + "target": "com.amazonaws.frauddetector#InternalServerException" + }, + { + "target": "com.amazonaws.frauddetector#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.frauddetector#ThrottlingException" + }, + { + "target": "com.amazonaws.frauddetector#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Gets all batch import jobs or a specific job of the specified ID. This is a paginated API. If you provide a null maxResults, \n this action retrieves a maximum of 50 records per page. If you provide a maxResults, the value must be between 1 and 50. \n To get the next page results, provide the pagination token from the GetBatchImportJobsResponse as part of your request. \n A null pagination token fetches the records from the beginning.

", + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.frauddetector#GetBatchImportJobsRequest": { + "type": "structure", + "members": { + "jobId": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

The ID of the batch import job to get.

" + } + }, + "maxResults": { + "target": "com.amazonaws.frauddetector#batchImportsMaxPageSize", + "traits": { + "smithy.api#documentation": "

The maximum number of objects to return for request.

" + } + }, + "nextToken": { + "target": "com.amazonaws.frauddetector#string", + "traits": { + "smithy.api#documentation": "

The next token from the previous request.

" + } + } + } + }, + "com.amazonaws.frauddetector#GetBatchImportJobsResult": { + "type": "structure", + "members": { + "batchImports": { + "target": "com.amazonaws.frauddetector#BatchImportList", + "traits": { + "smithy.api#documentation": "

An array containing the details of each batch import job.

" + } + }, + "nextToken": { + "target": "com.amazonaws.frauddetector#string", + "traits": { + "smithy.api#documentation": "

The next token for the subsequent resquest.

" + } + } + } + }, "com.amazonaws.frauddetector#GetBatchPredictionJobs": { "type": "operation", "input": { @@ -2557,6 +3078,64 @@ } } }, + "com.amazonaws.frauddetector#GetDeleteEventsByEventTypeStatus": { + "type": "operation", + "input": { + "target": "com.amazonaws.frauddetector#GetDeleteEventsByEventTypeStatusRequest" + }, + "output": { + "target": "com.amazonaws.frauddetector#GetDeleteEventsByEventTypeStatusResult" + }, + "errors": [ + { + "target": "com.amazonaws.frauddetector#AccessDeniedException" + }, + { + "target": "com.amazonaws.frauddetector#InternalServerException" + }, + { + "target": "com.amazonaws.frauddetector#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.frauddetector#ThrottlingException" + }, + { + "target": "com.amazonaws.frauddetector#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves the status of a DeleteEventsByEventType action.

" + } + }, + "com.amazonaws.frauddetector#GetDeleteEventsByEventTypeStatusRequest": { + "type": "structure", + "members": { + "eventTypeName": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

Name of event type for which to get the deletion status.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.frauddetector#GetDeleteEventsByEventTypeStatusResult": { + "type": "structure", + "members": { + "eventTypeName": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

The event type name.

" + } + }, + "eventsDeletionStatus": { + "target": "com.amazonaws.frauddetector#AsyncJobStatus", + "traits": { + "smithy.api#documentation": "

The deletion status.

" + } + } + } + }, "com.amazonaws.frauddetector#GetDetectorVersion": { "type": "operation", "input": { @@ -2824,6 +3403,35 @@ } } }, + "com.amazonaws.frauddetector#GetEvent": { + "type": "operation", + "input": { + "target": "com.amazonaws.frauddetector#GetEventRequest" + }, + "output": { + "target": "com.amazonaws.frauddetector#GetEventResult" + }, + "errors": [ + { + "target": "com.amazonaws.frauddetector#AccessDeniedException" + }, + { + "target": "com.amazonaws.frauddetector#InternalServerException" + }, + { + "target": "com.amazonaws.frauddetector#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.frauddetector#ThrottlingException" + }, + { + "target": "com.amazonaws.frauddetector#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves details of events stored with Amazon Fraud Detector. This action does not retrieve prediction results.

" + } + }, "com.amazonaws.frauddetector#GetEventPrediction": { "type": "operation", "input": { @@ -2899,14 +3507,14 @@ "eventTimestamp": { "target": "com.amazonaws.frauddetector#utcTimestampISO8601", "traits": { - "smithy.api#documentation": "

Timestamp that defines when the event under evaluation occurred.

", + "smithy.api#documentation": "

Timestamp that defines when the event under evaluation occurred. The timestamp must be specified using ISO 8601 standard in UTC.

", "smithy.api#required": {} } }, "eventVariables": { "target": "com.amazonaws.frauddetector#EventVariableMap", "traits": { - "smithy.api#documentation": "

Names of the event type's variables you defined in Amazon Fraud Detector to represent data elements and \n their corresponding values for the event you are sending for evaluation.

\n \n \n \n \n

To ensure highest possible fraud prediction and to simplify your data preparation, Amazon Fraud Detector will replace all missing variables or values as follows:

\n \n

\n For Amazon Fraud Detector trained models:\n

\n

If a null value is provided explicitly for a variable or if a variable is missing, model will replace the null value or the missing variable (no variable name in the eventVariables map) \n with calculated default mean/medians for numeric variables and with special values for categorical variables.

\n \n

\n For External models ( for example, imported SageMaker):\n

\n

If a null value is provided explicitly for a variable, the model and rules will use “null” as the value. If a variable is not provided (no variable name in the eventVariables map), model and rules \n will use the default value that is provided for the variable.

", + "smithy.api#documentation": "

Names of the event type's variables you defined in Amazon Fraud Detector to represent data elements and \n their corresponding values for the event you are sending for evaluation.

\n \n

You must provide at least one eventVariable

\n
\n \n

To ensure most accurate fraud prediction and to simplify your data preparation, Amazon Fraud Detector will replace all missing variables or values as follows:

\n \n

\n For Amazon Fraud Detector trained models:\n

\n

If a null value is provided explicitly for a variable or if a variable is missing, model will replace the null value or the missing variable (no variable name in the eventVariables map) \n with calculated default mean/medians for numeric variables and with special values for categorical variables.

\n \n

\n For imported SageMaker models:\n

\n

If a null value is provided explicitly for a variable, the model and rules will use “null” as the value. If a variable is not provided (no variable name in the eventVariables map), model and rules \n will use the default value that is provided for the variable.

", "smithy.api#required": {} } }, @@ -2941,6 +3549,36 @@ } } }, + "com.amazonaws.frauddetector#GetEventRequest": { + "type": "structure", + "members": { + "eventId": { + "target": "com.amazonaws.frauddetector#string", + "traits": { + "smithy.api#documentation": "

The ID of the event to retrieve.

", + "smithy.api#required": {} + } + }, + "eventTypeName": { + "target": "com.amazonaws.frauddetector#string", + "traits": { + "smithy.api#documentation": "

The event type of the event to retrieve.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.frauddetector#GetEventResult": { + "type": "structure", + "members": { + "event": { + "target": "com.amazonaws.frauddetector#Event", + "traits": { + "smithy.api#documentation": "

The details of the event.

" + } + } + } + }, "com.amazonaws.frauddetector#GetEventTypes": { "type": "operation", "input": { @@ -3109,7 +3747,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets the encryption key if a Key Management Service (KMS) customer master key (CMK) has been specified to be used to encrypt content in Amazon Fraud Detector.

" + "smithy.api#documentation": "

Gets the encryption key if a KMS key has been specified to be used to encrypt content in Amazon Fraud Detector.

" } }, "com.amazonaws.frauddetector#GetKMSEncryptionKeyResult": { @@ -3288,7 +3926,13 @@ "externalEventsDetail": { "target": "com.amazonaws.frauddetector#ExternalEventsDetail", "traits": { - "smithy.api#documentation": "

The event details.

" + "smithy.api#documentation": "

The details of the external events data used for training the model version. \n This will be populated if the trainingDataSource is EXTERNAL_EVENTS\n

" + } + }, + "ingestedEventsDetail": { + "target": "com.amazonaws.frauddetector#IngestedEventsDetail", + "traits": { + "smithy.api#documentation": "

The details of the ingested events data used for training the model version. \n This will be populated if the trainingDataSource is INGESTED_EVENTS.

" } }, "status": { @@ -3586,38 +4230,113 @@ "name": { "target": "com.amazonaws.frauddetector#string", "traits": { - "smithy.api#documentation": "

The name of the variable.

" + "smithy.api#documentation": "

The name of the variable.

" + } + }, + "nextToken": { + "target": "com.amazonaws.frauddetector#string", + "traits": { + "smithy.api#documentation": "

The next page token of the get variable request.

" + } + }, + "maxResults": { + "target": "com.amazonaws.frauddetector#VariablesMaxResults", + "traits": { + "smithy.api#documentation": "

The max size per page determined for the get variable request.

" + } + } + } + }, + "com.amazonaws.frauddetector#GetVariablesResult": { + "type": "structure", + "members": { + "variables": { + "target": "com.amazonaws.frauddetector#VariableList", + "traits": { + "smithy.api#documentation": "

The names of the variables returned.

" + } + }, + "nextToken": { + "target": "com.amazonaws.frauddetector#string", + "traits": { + "smithy.api#documentation": "

The next page token to be used in subsequent requests.

" + } + } + } + }, + "com.amazonaws.frauddetector#IngestedEventStatistics": { + "type": "structure", + "members": { + "numberOfEvents": { + "target": "com.amazonaws.frauddetector#Long", + "traits": { + "smithy.api#documentation": "

The number of stored events.

" } }, - "nextToken": { - "target": "com.amazonaws.frauddetector#string", + "eventDataSizeInBytes": { + "target": "com.amazonaws.frauddetector#Long", "traits": { - "smithy.api#documentation": "

The next page token of the get variable request.

" + "smithy.api#documentation": "

The total size of the stored events.

" } }, - "maxResults": { - "target": "com.amazonaws.frauddetector#VariablesMaxResults", + "leastRecentEvent": { + "target": "com.amazonaws.frauddetector#time", "traits": { - "smithy.api#documentation": "

The max size per page determined for the get variable request.

" + "smithy.api#documentation": "

The oldest stored event.

" + } + }, + "mostRecentEvent": { + "target": "com.amazonaws.frauddetector#time", + "traits": { + "smithy.api#documentation": "

The newest stored event.

" + } + }, + "lastUpdatedTime": { + "target": "com.amazonaws.frauddetector#time", + "traits": { + "smithy.api#documentation": "

Timestamp of when the stored event was last updated. \n

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

Data about the stored events.

" } }, - "com.amazonaws.frauddetector#GetVariablesResult": { + "com.amazonaws.frauddetector#IngestedEventsDetail": { "type": "structure", "members": { - "variables": { - "target": "com.amazonaws.frauddetector#VariableList", + "ingestedEventsTimeWindow": { + "target": "com.amazonaws.frauddetector#IngestedEventsTimeWindow", "traits": { - "smithy.api#documentation": "

The names of the variables returned.

" + "smithy.api#documentation": "

The start and stop time of the ingested events.

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

The details of the ingested event.

" + } + }, + "com.amazonaws.frauddetector#IngestedEventsTimeWindow": { + "type": "structure", + "members": { + "startTime": { + "target": "com.amazonaws.frauddetector#time", + "traits": { + "smithy.api#documentation": "

Timestamp of the first ingensted event.

", + "smithy.api#required": {} } }, - "nextToken": { - "target": "com.amazonaws.frauddetector#string", + "endTime": { + "target": "com.amazonaws.frauddetector#time", "traits": { - "smithy.api#documentation": "

The next page token to be used in subsequent requests.

" + "smithy.api#documentation": "

Timestamp of the final ingested event.

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

The start and stop time of the ingested events.

" } }, "com.amazonaws.frauddetector#Integer": { @@ -3725,6 +4444,12 @@ "smithy.api#documentation": "

The label mapper maps the Amazon Fraud Detector supported model classification labels (FRAUD, LEGIT) to the appropriate event type labels. For example, if \"FRAUD\" and \"LEGIT\" are Amazon Fraud Detector supported labels, this mapper could be: {\"FRAUD\" => [\"0\"], \"LEGIT\" => [\"1\"]} or {\"FRAUD\" => [\"false\"], \"LEGIT\" => [\"true\"]} or {\"FRAUD\" => [\"fraud\", \"abuse\"], \"LEGIT\" => [\"legit\", \"safe\"]}. The value part of the mapper is a list, because you may have multiple label variants from your event type for a single Amazon Fraud Detector label.\n

", "smithy.api#required": {} } + }, + "unlabeledEventsTreatment": { + "target": "com.amazonaws.frauddetector#UnlabeledEventsTreatment", + "traits": { + "smithy.api#documentation": "

The action to take for unlabeled events.

" + } } }, "traits": { @@ -3879,6 +4604,12 @@ "smithy.api#documentation": "

The log odds metric details.

" } }, + "com.amazonaws.frauddetector#Long": { + "type": "long", + "traits": { + "smithy.api#box": {} + } + }, "com.amazonaws.frauddetector#MetricDataPoint": { "type": "structure", "members": { @@ -4019,13 +4750,13 @@ } }, "jsonInputTemplate": { - "target": "com.amazonaws.frauddetector#string", + "target": "com.amazonaws.frauddetector#modelInputTemplate", "traits": { "smithy.api#documentation": "

Template for constructing the JSON input-data sent to SageMaker. At event-evaluation,\n the placeholders for variable names in the template will be replaced with the variable\n values before being sent to SageMaker.

" } }, "csvInputTemplate": { - "target": "com.amazonaws.frauddetector#string", + "target": "com.amazonaws.frauddetector#modelInputTemplate", "traits": { "smithy.api#documentation": "

Template for constructing the CSV input-data sent to SageMaker. At event-evaluation,\n the placeholders for variable-names in the template will be replaced with the variable\n values before being sent to SageMaker.

" } @@ -4139,6 +4870,10 @@ { "value": "ONLINE_FRAUD_INSIGHTS", "name": "ONLINE_FRAUD_INSIGHTS" + }, + { + "value": "TRANSACTION_FRAUD_INSIGHTS", + "name": "TRANSACTION_FRAUD_INSIGHTS" } ] } @@ -4161,7 +4896,7 @@ } }, "modelVersionNumber": { - "target": "com.amazonaws.frauddetector#nonEmptyString", + "target": "com.amazonaws.frauddetector#floatVersionString", "traits": { "smithy.api#documentation": "

The model version number.

", "smithy.api#required": {} @@ -4220,7 +4955,13 @@ "externalEventsDetail": { "target": "com.amazonaws.frauddetector#ExternalEventsDetail", "traits": { - "smithy.api#documentation": "

The event details.

" + "smithy.api#documentation": "

The external events data details. This will be populated if the trainingDataSource for the model version is specified as EXTERNAL_EVENTS.

" + } + }, + "ingestedEventsDetail": { + "target": "com.amazonaws.frauddetector#IngestedEventsDetail", + "traits": { + "smithy.api#documentation": "

The ingested events data details. This will be populated if the trainingDataSource for the model version is specified as INGESTED_EVENTS.

" } }, "trainingResult": { @@ -4534,6 +5275,12 @@ "smithy.api#required": {} } }, + "eventIngestion": { + "target": "com.amazonaws.frauddetector#EventIngestion", + "traits": { + "smithy.api#documentation": "

Specifies if ingenstion is enabled or disabled.

" + } + }, "tags": { "target": "com.amazonaws.frauddetector#tagList", "traits": { @@ -4661,7 +5408,7 @@ } ], "traits": { - "smithy.api#documentation": "

Specifies the Key Management Service (KMS) customer master key (CMK) to be used to encrypt content in Amazon Fraud Detector.

" + "smithy.api#documentation": "

Specifies the KMS key to be used to encrypt content in Amazon Fraud Detector.

" } }, "com.amazonaws.frauddetector#PutKMSEncryptionKeyRequest": { @@ -4805,7 +5552,7 @@ } }, "traits": { - "smithy.api#documentation": "

An exception indicating the specified resource was not found. This can occur if you submit a request, such as CreateBatchPredictionJob, but the detector name or version does not exist.

", + "smithy.api#documentation": "

An exception indicating the specified resource was not found.

", "smithy.api#error": "client", "smithy.api#httpError": 404 } @@ -4818,7 +5565,7 @@ } }, "traits": { - "smithy.api#documentation": "

\n An exception indicating that the attached customer-owned (external) model threw an exception when Amazon Fraud Detector invoked the model. \n

", + "smithy.api#documentation": "

An exception indicating that the attached customer-owned (external) model threw an exception when Amazon Fraud Detector invoked the model.

", "smithy.api#error": "client", "smithy.api#httpError": 409 } @@ -4977,6 +5724,94 @@ } } }, + "com.amazonaws.frauddetector#SendEvent": { + "type": "operation", + "input": { + "target": "com.amazonaws.frauddetector#SendEventRequest" + }, + "output": { + "target": "com.amazonaws.frauddetector#SendEventResult" + }, + "errors": [ + { + "target": "com.amazonaws.frauddetector#AccessDeniedException" + }, + { + "target": "com.amazonaws.frauddetector#ConflictException" + }, + { + "target": "com.amazonaws.frauddetector#InternalServerException" + }, + { + "target": "com.amazonaws.frauddetector#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.frauddetector#ThrottlingException" + }, + { + "target": "com.amazonaws.frauddetector#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Stores events in Amazon Fraud Detector without generating fraud predictions for those events. For example, you can use SendEvent to upload a historical dataset, which you can then later use to train a model.

" + } + }, + "com.amazonaws.frauddetector#SendEventRequest": { + "type": "structure", + "members": { + "eventId": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

The event ID to upload.

", + "smithy.api#required": {} + } + }, + "eventTypeName": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

The event type name of the event.

", + "smithy.api#required": {} + } + }, + "eventTimestamp": { + "target": "com.amazonaws.frauddetector#utcTimestampISO8601", + "traits": { + "smithy.api#documentation": "

The timestamp that defines when the event under evaluation occurred. The timestamp must be specified using ISO 8601 standard in UTC.

", + "smithy.api#required": {} + } + }, + "eventVariables": { + "target": "com.amazonaws.frauddetector#EventVariableMap", + "traits": { + "smithy.api#documentation": "

Names of the event type's variables you defined in Amazon Fraud Detector to represent data elements and their corresponding values for the event you are sending for evaluation.

", + "smithy.api#required": {} + } + }, + "assignedLabel": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

The label to associate with the event. Required if specifying labelTimestamp.

" + } + }, + "labelTimestamp": { + "target": "com.amazonaws.frauddetector#utcTimestampISO8601", + "traits": { + "smithy.api#documentation": "

The timestamp associated with the label. Required if specifying assignedLabel.

" + } + }, + "entities": { + "target": "com.amazonaws.frauddetector#listOfEntities", + "traits": { + "smithy.api#documentation": "

An array of entities.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.frauddetector#SendEventResult": { + "type": "structure", + "members": {} + }, "com.amazonaws.frauddetector#Tag": { "type": "structure", "members": { @@ -5102,6 +5937,10 @@ { "value": "EXTERNAL_EVENTS", "name": "EXTERNAL_EVENTS" + }, + { + "value": "INGESTED_EVENTS", + "name": "INGESTED_EVENTS" } ] } @@ -5152,6 +5991,25 @@ "smithy.api#documentation": "

The training result details.

" } }, + "com.amazonaws.frauddetector#UnlabeledEventsTreatment": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "IGNORE", + "name": "IGNORE" + }, + { + "value": "FRAUD", + "name": "FRAUD" + }, + { + "value": "LEGIT", + "name": "LEGIT" + } + ] + } + }, "com.amazonaws.frauddetector#UntagResource": { "type": "operation", "input": { @@ -5409,6 +6267,75 @@ "type": "structure", "members": {} }, + "com.amazonaws.frauddetector#UpdateEventLabel": { + "type": "operation", + "input": { + "target": "com.amazonaws.frauddetector#UpdateEventLabelRequest" + }, + "output": { + "target": "com.amazonaws.frauddetector#UpdateEventLabelResult" + }, + "errors": [ + { + "target": "com.amazonaws.frauddetector#AccessDeniedException" + }, + { + "target": "com.amazonaws.frauddetector#ConflictException" + }, + { + "target": "com.amazonaws.frauddetector#InternalServerException" + }, + { + "target": "com.amazonaws.frauddetector#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.frauddetector#ThrottlingException" + }, + { + "target": "com.amazonaws.frauddetector#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the specified event with a new label.

" + } + }, + "com.amazonaws.frauddetector#UpdateEventLabelRequest": { + "type": "structure", + "members": { + "eventId": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

The ID of the event associated with the label to update.

", + "smithy.api#required": {} + } + }, + "eventTypeName": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

The event type of the event associated with the label to update.

", + "smithy.api#required": {} + } + }, + "assignedLabel": { + "target": "com.amazonaws.frauddetector#identifier", + "traits": { + "smithy.api#documentation": "

The new label to assign to the event.

", + "smithy.api#required": {} + } + }, + "labelTimestamp": { + "target": "com.amazonaws.frauddetector#utcTimestampISO8601", + "traits": { + "smithy.api#documentation": "

The timestamp associated with the label. The timestamp must be specified using ISO 8601 standard in UTC.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.frauddetector#UpdateEventLabelResult": { + "type": "structure", + "members": {} + }, "com.amazonaws.frauddetector#UpdateModel": { "type": "operation", "input": { @@ -5438,7 +6365,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates a model. You can update the description attribute using this action.

" + "smithy.api#documentation": "

Updates model description.

" } }, "com.amazonaws.frauddetector#UpdateModelRequest": { @@ -5529,7 +6456,13 @@ "externalEventsDetail": { "target": "com.amazonaws.frauddetector#ExternalEventsDetail", "traits": { - "smithy.api#documentation": "

The event details.

" + "smithy.api#documentation": "

The details of the external events data used for training the model version. Required if trainingDataSource is EXTERNAL_EVENTS.

" + } + }, + "ingestedEventsDetail": { + "target": "com.amazonaws.frauddetector#IngestedEventsDetail", + "traits": { + "smithy.api#documentation": "

The details of the ingested event used for training the model version. Required if your trainingDataSource is INGESTED_EVENTS.

" } }, "tags": { @@ -5598,7 +6531,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the status of a model version.

\n

You can perform the following status updates:

\n
    \n
  1. \n

    Change the TRAINING_COMPLETE status to ACTIVE.

    \n
  2. \n
  3. \n

    Change ACTIVEto INACTIVE.

    \n
  4. \n
" + "smithy.api#documentation": "

Updates the status of a model version.

\n

You can perform the following status updates:

\n
    \n
  1. \n

    Change the TRAINING_COMPLETE status to ACTIVE.

    \n
  2. \n
  3. \n

    Change ACTIVE to INACTIVE.

    \n
  4. \n
" } }, "com.amazonaws.frauddetector#UpdateModelVersionStatusRequest": { @@ -6017,6 +6950,35 @@ } } }, + "com.amazonaws.frauddetector#attributeKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + } + } + }, + "com.amazonaws.frauddetector#attributeValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.frauddetector#batchImportsMaxPageSize": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 1, + "max": 50 + } + } + }, "com.amazonaws.frauddetector#batchPredictionsMaxPageSize": { "type": "integer", "traits": { @@ -6048,6 +7010,16 @@ } } }, + "com.amazonaws.frauddetector#entityRestrictedString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^[0-9A-Za-z_.@+-]+$" + } + }, "com.amazonaws.frauddetector#entityTypeList": { "type": "list", "member": { @@ -6185,6 +7157,15 @@ "smithy.api#pattern": "^[0-9a-z_]+$" } }, + "com.amazonaws.frauddetector#modelInputTemplate": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2000 + } + } + }, "com.amazonaws.frauddetector#modelList": { "type": "list", "member": { @@ -6207,14 +7188,6 @@ } } }, - "com.amazonaws.frauddetector#nonEmptyString": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1 - } - } - }, "com.amazonaws.frauddetector#ruleExpression": { "type": "string", "traits": { diff --git a/codegen/sdk-codegen/aws-models/fsx.2018-03-01.json b/codegen/sdk-codegen/aws-models/fsx.2018-03-01.json index b6bd44c19c0..664d3f7c956 100644 --- a/codegen/sdk-codegen/aws-models/fsx.2018-03-01.json +++ b/codegen/sdk-codegen/aws-models/fsx.2018-03-01.json @@ -1304,6 +1304,12 @@ }, "KmsKeyId": { "target": "com.amazonaws.fsx#KmsKeyId" + }, + "FileSystemTypeVersion": { + "target": "com.amazonaws.fsx#FileSystemTypeVersion", + "traits": { + "smithy.api#documentation": "

Sets the version for the Amazon FSx for Lustre file system you're creating from a backup.\n Valid values are 2.10 and 2.12.

\n

You don't need to specify FileSystemTypeVersion because it will\n be applied using the backup's FileSystemTypeVersion setting.\n If you choose to specify FileSystemTypeVersion when creating from backup, the\n value must match the backup's FileSystemTypeVersion setting.

" + } } }, "traits": { @@ -1518,6 +1524,12 @@ }, "OntapConfiguration": { "target": "com.amazonaws.fsx#CreateFileSystemOntapConfiguration" + }, + "FileSystemTypeVersion": { + "target": "com.amazonaws.fsx#FileSystemTypeVersion", + "traits": { + "smithy.api#documentation": "

Sets the version of the Amazon FSx for Lustre file system you're creating.\n Valid values are 2.10 and 2.12.

\n \n

Default value is 2.10.

" + } } }, "traits": { @@ -3488,6 +3500,12 @@ "traits": { "smithy.api#documentation": "

The configuration for this FSx for NetApp ONTAP file system.

" } + }, + "FileSystemTypeVersion": { + "target": "com.amazonaws.fsx#FileSystemTypeVersion", + "traits": { + "smithy.api#documentation": "

The version of your Amazon FSx for Lustre file system, either\n 2.10 or 2.12.

" + } } }, "traits": { @@ -3672,6 +3690,16 @@ ] } }, + "com.amazonaws.fsx#FileSystemTypeVersion": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 20 + }, + "smithy.api#pattern": "^[0-9](\\.[0-9]*)*$" + } + }, "com.amazonaws.fsx#FileSystems": { "type": "list", "member": { @@ -4700,7 +4728,7 @@ "DnsIps": { "target": "com.amazonaws.fsx#DnsIps", "traits": { - "smithy.api#documentation": "

A list of up to two IP addresses of DNS servers or domain controllers in the\n self-managed AD directory.

" + "smithy.api#documentation": "

A list of up to three IP addresses of DNS servers or domain controllers in the\n self-managed AD directory.

" } } }, @@ -4747,13 +4775,13 @@ "DnsIps": { "target": "com.amazonaws.fsx#DnsIps", "traits": { - "smithy.api#documentation": "

A list of up to two IP addresses of DNS servers or domain controllers in the\n self-managed AD directory.

", + "smithy.api#documentation": "

A list of up to three IP addresses of DNS servers or domain controllers in the\n self-managed AD directory.

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

The configuration that Amazon FSx uses to join a Amazon FSx for Windows File Server file system or an ONTAP storage virtual machine (SVM) to\n a self-managed (including on-premises) Microsoft Active Directory (AD)\n directory. For more information, see \n \n Using Amazon FSx with your self-managed Microsoft Active Directory or \n Managing SVMs.

" + "smithy.api#documentation": "

The configuration that Amazon FSx uses to join a FSx for Windows File Server file system or an ONTAP storage virtual machine (SVM) to\n a self-managed (including on-premises) Microsoft Active Directory (AD)\n directory. For more information, see \n \n Using Amazon FSx with your self-managed Microsoft Active Directory or \n Managing SVMs.

" } }, "com.amazonaws.fsx#SelfManagedActiveDirectoryConfigurationUpdates": { @@ -4774,7 +4802,7 @@ "DnsIps": { "target": "com.amazonaws.fsx#DnsIps", "traits": { - "smithy.api#documentation": "

A list of up to two IP addresses of DNS servers or domain controllers in the\n self-managed AD directory.

" + "smithy.api#documentation": "

A list of up to three IP addresses of DNS servers or domain controllers in the\n self-managed AD directory.

" } } }, diff --git a/codegen/sdk-codegen/aws-models/glue.2017-03-31.json b/codegen/sdk-codegen/aws-models/glue.2017-03-31.json index 0b1a3fc9d13..1891f9e9415 100644 --- a/codegen/sdk-codegen/aws-models/glue.2017-03-31.json +++ b/codegen/sdk-codegen/aws-models/glue.2017-03-31.json @@ -3983,6 +3983,12 @@ "smithy.api#documentation": "

A ConnectionInput object defining the connection\n to create.

", "smithy.api#required": {} } + }, + "Tags": { + "target": "com.amazonaws.glue#TagsMap", + "traits": { + "smithy.api#documentation": "

The tags you assign to the connection.

" + } } } }, @@ -10240,7 +10246,10 @@ } }, "ExcludeColumnSchema": { - "target": "com.amazonaws.glue#BooleanNullable" + "target": "com.amazonaws.glue#BooleanNullable", + "traits": { + "smithy.api#documentation": "

When true, specifies not returning the partition column schema. Useful when you are interested only in other partition attributes such as partition values or location. This approach avoids the problem of a large response by not returning duplicate data.

" + } } } }, diff --git a/codegen/sdk-codegen/aws-models/grafana.2020-08-18.json b/codegen/sdk-codegen/aws-models/grafana.2020-08-18.json new file mode 100644 index 00000000000..e74a176948c --- /dev/null +++ b/codegen/sdk-codegen/aws-models/grafana.2020-08-18.json @@ -0,0 +1,2311 @@ +{ + "smithy": "1.0", + "shapes": { + "com.amazonaws.grafana#AWSGrafanaControlPlane": { + "type": "service", + "version": "2020-08-18", + "resources": [ + { + "target": "com.amazonaws.grafana#Authentication" + }, + { + "target": "com.amazonaws.grafana#License" + }, + { + "target": "com.amazonaws.grafana#Permission" + }, + { + "target": "com.amazonaws.grafana#Workspace" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "aws.api#service": { + "sdkId": "grafana", + "arnNamespace": "grafana", + "cloudFormationName": "AWSGrafanaControlPlane", + "cloudTrailEventSource": "EVENT_SOURCE_VALUE", + "endpointPrefix": "grafana" + }, + "aws.auth#sigv4": { + "name": "grafana" + }, + "aws.protocols#restJson1": {}, + "smithy.api#cors": { + "additionalAllowedHeaders": [ + "x-amz-content-sha256", + "x-amzn-trace-id", + "x-amz-user-agent", + "*", + "content-type", + "x-amzn-platform-id" + ], + "additionalExposedHeaders": [ + "x-amzn-trace-id", + "x-amzn-errortype", + "x-amzn-requestid", + "x-amzn-errormessage", + "x-amz-apigw-id,date", + "cache-control" + ] + }, + "smithy.api#documentation": "

Amazon Managed Grafana is a fully managed and secure data visualization service that you can use to \n instantly query, correlate, and visualize operational metrics, logs, and traces from multiple sources. \n Amazon Managed Grafana makes it easy to deploy, operate, and scale Grafana, a widely deployed data visualization tool \n that is popular for its extensible data support.

\n

With Amazon Managed Grafana, you create logically isolated Grafana servers called workspaces. In\n a workspace, you can create Grafana dashboards and visualizations to analyze your metrics, logs, and traces without having to\n build, package, or deploy any hardware to run Grafana servers.

", + "smithy.api#title": "Amazon Managed Grafana" + } + }, + "com.amazonaws.grafana#AccessDeniedException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

You do not have sufficient permissions to perform this action.

", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.grafana#AccountAccessType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CURRENT_ACCOUNT", + "name": "CURRENT_ACCOUNT", + "documentation": "Indicates that the customer is using Grafana to monitor resources in their current account." + }, + { + "value": "ORGANIZATION", + "name": "ORGANIZATION", + "documentation": "Indicates that the customer is using Grafana to monitor resources in organizational units." + } + ] + } + }, + "com.amazonaws.grafana#AllowedOrganization": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + } + } + }, + "com.amazonaws.grafana#AllowedOrganizations": { + "type": "list", + "member": { + "target": "com.amazonaws.grafana#AllowedOrganization" + } + }, + "com.amazonaws.grafana#AssertionAttribute": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + } + } + }, + "com.amazonaws.grafana#AssertionAttributes": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.grafana#AssertionAttribute", + "traits": { + "smithy.api#documentation": "

The name of the attribute within the SAML assertion to use as the user full \"friendly\" names for SAML users.

" + } + }, + "login": { + "target": "com.amazonaws.grafana#AssertionAttribute", + "traits": { + "smithy.api#documentation": "

The name of the attribute within the SAML assertion to use as the login names for SAML users.

" + } + }, + "email": { + "target": "com.amazonaws.grafana#AssertionAttribute", + "traits": { + "smithy.api#documentation": "

The name of the attribute within the SAML assertion to use as the email names for SAML users.

" + } + }, + "groups": { + "target": "com.amazonaws.grafana#AssertionAttribute", + "traits": { + "smithy.api#documentation": "

The name of the attribute within the SAML assertion to use as the user full \"friendly\" names for user groups.

" + } + }, + "role": { + "target": "com.amazonaws.grafana#AssertionAttribute", + "traits": { + "smithy.api#documentation": "

The name of the attribute within the SAML assertion to use as the user roles.

" + } + }, + "org": { + "target": "com.amazonaws.grafana#AssertionAttribute", + "traits": { + "smithy.api#documentation": "

The name of the attribute within the SAML assertion to use as the user full \"friendly\" names for the users' organizations.

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

A structure that defines which attributes in the IdP assertion are to be used to define\n information about the users authenticated by the IdP to use the workspace.

" + } + }, + "com.amazonaws.grafana#AssociateLicense": { + "type": "operation", + "input": { + "target": "com.amazonaws.grafana#AssociateLicenseRequest" + }, + "output": { + "target": "com.amazonaws.grafana#AssociateLicenseResponse" + }, + "errors": [ + { + "target": "com.amazonaws.grafana#AccessDeniedException" + }, + { + "target": "com.amazonaws.grafana#InternalServerException" + }, + { + "target": "com.amazonaws.grafana#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.grafana#ThrottlingException" + }, + { + "target": "com.amazonaws.grafana#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Assigns a Grafana Enterprise license to a workspace. Upgrading to Grafana Enterprise\n incurs additional fees. For more information, see Upgrade a workspace to\n Grafana Enterprise.

", + "smithy.api#http": { + "method": "POST", + "uri": "/workspaces/{workspaceId}/licenses/{licenseType}", + "code": 202 + } + } + }, + "com.amazonaws.grafana#AssociateLicenseRequest": { + "type": "structure", + "members": { + "workspaceId": { + "target": "com.amazonaws.grafana#WorkspaceId", + "traits": { + "smithy.api#documentation": "

The ID of the workspace to associate the license with.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "licenseType": { + "target": "com.amazonaws.grafana#LicenseType", + "traits": { + "smithy.api#documentation": "

The type of license to associate with the workspace.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.grafana#AssociateLicenseResponse": { + "type": "structure", + "members": { + "workspace": { + "target": "com.amazonaws.grafana#WorkspaceDescription", + "traits": { + "smithy.api#documentation": "

A structure containing data about the workspace.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.grafana#Authentication": { + "type": "resource", + "identifiers": { + "workspaceId": { + "target": "com.amazonaws.grafana#WorkspaceId" + } + }, + "operations": [ + { + "target": "com.amazonaws.grafana#DescribeWorkspaceAuthentication" + }, + { + "target": "com.amazonaws.grafana#UpdateWorkspaceAuthentication" + } + ], + "traits": { + "aws.api#arn": { + "template": "workspaces/{workspaceId}/authentication", + "absolute": false, + "noAccount": false, + "noRegion": false + } + } + }, + "com.amazonaws.grafana#AuthenticationDescription": { + "type": "structure", + "members": { + "providers": { + "target": "com.amazonaws.grafana#AuthenticationProviders", + "traits": { + "smithy.api#documentation": "

Specifies whether this workspace uses Amazon Web Services SSO, SAML, or both methods to authenticate\n users to use the Grafana console in the Amazon Managed Grafana workspace.

", + "smithy.api#required": {} + } + }, + "saml": { + "target": "com.amazonaws.grafana#SamlAuthentication", + "traits": { + "smithy.api#documentation": "

A structure containing information about how this workspace works with \n SAML, including what attributes within the assertion are to be mapped to user information in the workspace.

" + } + }, + "awsSso": { + "target": "com.amazonaws.grafana#AwsSsoAuthentication", + "traits": { + "smithy.api#documentation": "

A structure containing information about how this workspace works with \n Amazon Web Services SSO.

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

A structure containing information about the user authentication methods used by the workspace.

" + } + }, + "com.amazonaws.grafana#AuthenticationProviderTypes": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "AWS_SSO", + "name": "AWS_SSO", + "documentation": "Indicates that AMG workspace has AWS SSO enabled as its authentication provider." + }, + { + "value": "SAML", + "name": "SAML", + "documentation": "Indicates that the AMG workspace has SAML enabled as its authentication provider." + } + ] + } + }, + "com.amazonaws.grafana#AuthenticationProviders": { + "type": "list", + "member": { + "target": "com.amazonaws.grafana#AuthenticationProviderTypes" + } + }, + "com.amazonaws.grafana#AuthenticationSummary": { + "type": "structure", + "members": { + "providers": { + "target": "com.amazonaws.grafana#AuthenticationProviders", + "traits": { + "smithy.api#documentation": "

Specifies whether the workspace uses SAML, Amazon Web Services SSO, or both methods for user\n authentication.

", + "smithy.api#required": {} + } + }, + "samlConfigurationStatus": { + "target": "com.amazonaws.grafana#SamlConfigurationStatus", + "traits": { + "smithy.api#documentation": "

Specifies whether the workplace's user authentication method is fully configured.

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

A structure that describes whether the workspace uses SAML, Amazon Web Services SSO, or both methods\n for user authentication, and whether that authentication is fully configured.

" + } + }, + "com.amazonaws.grafana#AwsSsoAuthentication": { + "type": "structure", + "members": { + "ssoClientId": { + "target": "com.amazonaws.grafana#SSOClientId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services SSO-managed application that is created by Amazon Managed Grafana.

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

A structure containing information about how this workspace works with \n Amazon Web Services SSO.

" + } + }, + "com.amazonaws.grafana#ClientToken": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[!-~]{1,64}$" + } + }, + "com.amazonaws.grafana#ConflictException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A description of the error.

", + "smithy.api#required": {} + } + }, + "resourceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The ID of the resource that is associated with the error.

", + "smithy.api#required": {} + } + }, + "resourceType": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The type of the resource that is associated with the error.

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

A resource was in an inconsistent state during an update or a deletion.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.grafana#CreateWorkspace": { + "type": "operation", + "input": { + "target": "com.amazonaws.grafana#CreateWorkspaceRequest" + }, + "output": { + "target": "com.amazonaws.grafana#CreateWorkspaceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.grafana#AccessDeniedException" + }, + { + "target": "com.amazonaws.grafana#ConflictException" + }, + { + "target": "com.amazonaws.grafana#InternalServerException" + }, + { + "target": "com.amazonaws.grafana#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.grafana#ThrottlingException" + }, + { + "target": "com.amazonaws.grafana#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a workspace. In a workspace, you can create Grafana\n dashboards and visualizations to analyze your metrics, logs, and traces. You don't have to\n build, package, or deploy any hardware to run the Grafana server.

\n

Don't use CreateWorkspace to modify an existing workspace. Instead, \n use UpdateWorkspace.

", + "smithy.api#http": { + "method": "POST", + "uri": "/workspaces", + "code": 202 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.grafana#CreateWorkspaceRequest": { + "type": "structure", + "members": { + "accountAccessType": { + "target": "com.amazonaws.grafana#AccountAccessType", + "traits": { + "smithy.api#documentation": "

Specifies whether the workspace can access Amazon Web Services resources in this Amazon Web Services account only, or whether it can also access Amazon Web Services resources in\n other accounts in the same organization. If you specify ORGANIZATION, you must\n specify which organizational units the workspace can access in the\n workspaceOrganizationalUnits parameter.

", + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.grafana#ClientToken", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

", + "smithy.api#idempotencyToken": {} + } + }, + "organizationRoleName": { + "target": "com.amazonaws.grafana#OrganizationRoleName", + "traits": { + "smithy.api#documentation": "

The name of an IAM role that already exists to use with Organizations to access Amazon Web Services\n data sources and notification channels in other accounts in an organization.

" + } + }, + "permissionType": { + "target": "com.amazonaws.grafana#PermissionType", + "traits": { + "smithy.api#documentation": "

If you specify Service Managed, Amazon Managed Grafana automatically creates\n the IAM roles and provisions the permissions that the workspace needs to use\n Amazon Web Services data sources and notification channels.

\n

If you specify CUSTOMER_MANAGED, you will manage those roles and\n permissions yourself. If you are creating this workspace in a member account of an\n organization that is not a delegated administrator account, and you want the workspace to access data sources in other Amazon Web Services\n accounts in the organization, you must choose CUSTOMER_MANAGED.

\n

For more information, see Amazon Managed Grafana permissions and policies for\n Amazon Web Services data sources and notification channels\n

", + "smithy.api#required": {} + } + }, + "stackSetName": { + "target": "com.amazonaws.grafana#StackSetName", + "traits": { + "smithy.api#documentation": "

The name of the CloudFormation stack set to use to generate IAM roles\n to be used for this workspace.

" + } + }, + "workspaceDataSources": { + "target": "com.amazonaws.grafana#DataSourceTypesList", + "traits": { + "smithy.api#documentation": "

Specify the Amazon Web Services data sources that you want to be queried in this\n workspace. Specifying these data sources here enables Amazon Managed Grafana to create IAM roles and permissions that allow Amazon Managed Grafana to read data from these\n sources. You must still add them as data sources in the Grafana console in the\n workspace.

\n

If you don't specify a data source here, you can still add it as a data source in the\n workspace console later. However, you will then have to manually configure permissions for\n it.

" + } + }, + "workspaceDescription": { + "target": "com.amazonaws.grafana#Description", + "traits": { + "smithy.api#documentation": "

A description for the workspace. This is used only to help you identify this workspace.

" + } + }, + "workspaceName": { + "target": "com.amazonaws.grafana#WorkspaceName", + "traits": { + "smithy.api#documentation": "

The name for the workspace. It does not have to be unique.

" + } + }, + "workspaceNotificationDestinations": { + "target": "com.amazonaws.grafana#NotificationDestinationsList", + "traits": { + "smithy.api#documentation": "

Specify the Amazon Web Services notification channels that you plan to use in this workspace. Specifying these \n data sources here enables Amazon Managed Grafana to create IAM roles and permissions that allow \n Amazon Managed Grafana to use these channels.

" + } + }, + "workspaceOrganizationalUnits": { + "target": "com.amazonaws.grafana#OrganizationalUnitList", + "traits": { + "smithy.api#documentation": "

Specifies the organizational units that this workspace is allowed to use data sources\n from, if this workspace is in an account that is part of an organization.

" + } + }, + "workspaceRoleArn": { + "target": "com.amazonaws.grafana#IamRoleArn", + "traits": { + "smithy.api#documentation": "

The workspace needs an IAM role that grants permissions to the Amazon Web Services resources that the \n workspace will view data from. If you already have a role that you want to use, specify it here. If you omit\n this field and you specify some Amazon Web Services resources in workspaceDataSources or\n workspaceNotificationDestinations, a new IAM role with the necessary permissions is \n automatically created.

" + } + }, + "authenticationProviders": { + "target": "com.amazonaws.grafana#AuthenticationProviders", + "traits": { + "smithy.api#documentation": "

Specifies whether this workspace uses SAML 2.0, Amazon Web Services Single Sign On, or both to authenticate \n users for using the Grafana console within a workspace. For more information, \n see User authentication in \n Amazon Managed Grafana.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.grafana#CreateWorkspaceResponse": { + "type": "structure", + "members": { + "workspace": { + "target": "com.amazonaws.grafana#WorkspaceDescription", + "traits": { + "smithy.api#documentation": "

A structure containing data about the workspace that was created.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.grafana#DataSourceType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "AMAZON_OPENSEARCH_SERVICE", + "name": "AMAZON_OPENSEARCH_SERVICE", + "documentation": "Amazon OpenSearch Service" + }, + { + "value": "CLOUDWATCH", + "name": "CLOUDWATCH", + "documentation": "CloudWatch Logs" + }, + { + "value": "PROMETHEUS", + "name": "PROMETHEUS", + "documentation": "Managed Prometheus" + }, + { + "value": "XRAY", + "name": "XRAY", + "documentation": "X-Ray" + }, + { + "value": "TIMESTREAM", + "name": "TIMESTREAM", + "documentation": "Timestream" + }, + { + "value": "SITEWISE", + "name": "SITEWISE", + "documentation": "IoT SiteWise" + } + ] + } + }, + "com.amazonaws.grafana#DataSourceTypesList": { + "type": "list", + "member": { + "target": "com.amazonaws.grafana#DataSourceType" + } + }, + "com.amazonaws.grafana#DeleteWorkspace": { + "type": "operation", + "input": { + "target": "com.amazonaws.grafana#DeleteWorkspaceRequest" + }, + "output": { + "target": "com.amazonaws.grafana#DeleteWorkspaceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.grafana#AccessDeniedException" + }, + { + "target": "com.amazonaws.grafana#ConflictException" + }, + { + "target": "com.amazonaws.grafana#InternalServerException" + }, + { + "target": "com.amazonaws.grafana#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.grafana#ThrottlingException" + }, + { + "target": "com.amazonaws.grafana#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes an Amazon Managed Grafana workspace.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/workspaces/{workspaceId}", + "code": 202 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.grafana#DeleteWorkspaceRequest": { + "type": "structure", + "members": { + "workspaceId": { + "target": "com.amazonaws.grafana#WorkspaceId", + "traits": { + "smithy.api#documentation": "

The ID of the workspace to delete.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.grafana#DeleteWorkspaceResponse": { + "type": "structure", + "members": { + "workspace": { + "target": "com.amazonaws.grafana#WorkspaceDescription", + "traits": { + "smithy.api#documentation": "

A structure containing information about the workspace that was deleted.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.grafana#DescribeWorkspace": { + "type": "operation", + "input": { + "target": "com.amazonaws.grafana#DescribeWorkspaceRequest" + }, + "output": { + "target": "com.amazonaws.grafana#DescribeWorkspaceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.grafana#AccessDeniedException" + }, + { + "target": "com.amazonaws.grafana#InternalServerException" + }, + { + "target": "com.amazonaws.grafana#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.grafana#ThrottlingException" + }, + { + "target": "com.amazonaws.grafana#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Displays information about one Amazon Managed Grafana workspace.

", + "smithy.api#http": { + "method": "GET", + "uri": "/workspaces/{workspaceId}", + "code": 200 + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.grafana#DescribeWorkspaceAuthentication": { + "type": "operation", + "input": { + "target": "com.amazonaws.grafana#DescribeWorkspaceAuthenticationRequest" + }, + "output": { + "target": "com.amazonaws.grafana#DescribeWorkspaceAuthenticationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.grafana#AccessDeniedException" + }, + { + "target": "com.amazonaws.grafana#InternalServerException" + }, + { + "target": "com.amazonaws.grafana#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.grafana#ThrottlingException" + }, + { + "target": "com.amazonaws.grafana#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Displays information about the authentication methods used in one Amazon Managed Grafana workspace.

", + "smithy.api#http": { + "method": "GET", + "uri": "/workspaces/{workspaceId}/authentication", + "code": 200 + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.grafana#DescribeWorkspaceAuthenticationRequest": { + "type": "structure", + "members": { + "workspaceId": { + "target": "com.amazonaws.grafana#WorkspaceId", + "traits": { + "smithy.api#documentation": "

The ID of the workspace to return authentication information about.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.grafana#DescribeWorkspaceAuthenticationResponse": { + "type": "structure", + "members": { + "authentication": { + "target": "com.amazonaws.grafana#AuthenticationDescription", + "traits": { + "smithy.api#documentation": "

A structure containing information about the authentication methods used in \n the workspace.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.grafana#DescribeWorkspaceRequest": { + "type": "structure", + "members": { + "workspaceId": { + "target": "com.amazonaws.grafana#WorkspaceId", + "traits": { + "smithy.api#documentation": "

The ID of the workspace to display information about.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.grafana#DescribeWorkspaceResponse": { + "type": "structure", + "members": { + "workspace": { + "target": "com.amazonaws.grafana#WorkspaceDescription", + "traits": { + "smithy.api#documentation": "

A structure containing information about the workspace.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.grafana#Description": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 2048 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.grafana#DisassociateLicense": { + "type": "operation", + "input": { + "target": "com.amazonaws.grafana#DisassociateLicenseRequest" + }, + "output": { + "target": "com.amazonaws.grafana#DisassociateLicenseResponse" + }, + "errors": [ + { + "target": "com.amazonaws.grafana#AccessDeniedException" + }, + { + "target": "com.amazonaws.grafana#InternalServerException" + }, + { + "target": "com.amazonaws.grafana#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.grafana#ThrottlingException" + }, + { + "target": "com.amazonaws.grafana#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Removes the Grafana Enterprise license from a workspace.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/workspaces/{workspaceId}/licenses/{licenseType}", + "code": 202 + } + } + }, + "com.amazonaws.grafana#DisassociateLicenseRequest": { + "type": "structure", + "members": { + "workspaceId": { + "target": "com.amazonaws.grafana#WorkspaceId", + "traits": { + "smithy.api#documentation": "

The ID of the workspace to remove the Grafana Enterprise license from.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "licenseType": { + "target": "com.amazonaws.grafana#LicenseType", + "traits": { + "smithy.api#documentation": "

The type of license to remove from the workspace.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.grafana#DisassociateLicenseResponse": { + "type": "structure", + "members": { + "workspace": { + "target": "com.amazonaws.grafana#WorkspaceDescription", + "traits": { + "smithy.api#documentation": "

A structure containing information about the workspace.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.grafana#Endpoint": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + } + } + }, + "com.amazonaws.grafana#GrafanaVersion": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, + "com.amazonaws.grafana#IamRoleArn": { + "type": "string", + "traits": { + "aws.api#arnReference": { + "type": "AWS::IAM::Role" + }, + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.grafana#IdpMetadata": { + "type": "union", + "members": { + "url": { + "target": "com.amazonaws.grafana#IdpMetadataUrl", + "traits": { + "smithy.api#documentation": "

The URL of the location containing the metadata.

" + } + }, + "xml": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The actual full metadata file, in XML format.

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

A structure containing the identity provider (IdP) metadata used to integrate the\n identity provider with this workspace. You can specify the metadata either by providing a\n URL to its location in the url parameter, or by specifying the full metadata\n in XML format in the xml parameter.

" + } + }, + "com.amazonaws.grafana#IdpMetadataUrl": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + } + } + }, + "com.amazonaws.grafana#InternalServerException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A description of the error.

", + "smithy.api#required": {} + } + }, + "retryAfterSeconds": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

How long to wait before you retry this operation.

", + "smithy.api#httpHeader": "Retry-After" + } + } + }, + "traits": { + "smithy.api#documentation": "

Unexpected error while processing the request. Retry the request.

", + "smithy.api#error": "server", + "smithy.api#httpError": 500, + "smithy.api#retryable": {} + } + }, + "com.amazonaws.grafana#License": { + "type": "resource", + "identifiers": { + "workspaceId": { + "target": "com.amazonaws.grafana#WorkspaceId" + }, + "licenseType": { + "target": "com.amazonaws.grafana#LicenseType" + } + }, + "operations": [ + { + "target": "com.amazonaws.grafana#AssociateLicense" + }, + { + "target": "com.amazonaws.grafana#DisassociateLicense" + } + ], + "traits": { + "aws.api#arn": { + "template": "workspaces/{workspaceId}/licenses/{licenseType}", + "absolute": false, + "noAccount": false, + "noRegion": false + } + } + }, + "com.amazonaws.grafana#LicenseType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ENTERPRISE", + "name": "ENTERPRISE", + "documentation": "Grafana Enterprise License." + }, + { + "value": "ENTERPRISE_FREE_TRIAL", + "name": "ENTERPRISE_FREE_TRIAL", + "documentation": "Grafana Enterprise Free Trial License." + } + ] + } + }, + "com.amazonaws.grafana#ListPermissions": { + "type": "operation", + "input": { + "target": "com.amazonaws.grafana#ListPermissionsRequest" + }, + "output": { + "target": "com.amazonaws.grafana#ListPermissionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.grafana#AccessDeniedException" + }, + { + "target": "com.amazonaws.grafana#InternalServerException" + }, + { + "target": "com.amazonaws.grafana#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.grafana#ThrottlingException" + }, + { + "target": "com.amazonaws.grafana#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the users and groups who have the Grafana Admin and \n Editor roles in this workspace. If you use this \n operation without specifying userId or groupId, the operation returns\n the roles of all users\n and groups. If you specify a userId or a groupId, only the roles\n for that user or group are returned. If you do this, you can specify only one userId or \n one groupId.

", + "smithy.api#http": { + "method": "GET", + "uri": "/workspaces/{workspaceId}/permissions", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "items": "permissions", + "pageSize": "maxResults" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.grafana#ListPermissionsRequest": { + "type": "structure", + "members": { + "maxResults": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of results to include in the response.

", + "smithy.api#httpQuery": "maxResults", + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "nextToken": { + "target": "com.amazonaws.grafana#PaginationToken", + "traits": { + "smithy.api#documentation": "

The token to use when requesting the next set of results. You received this token from a previous \n ListPermissions operation.

", + "smithy.api#httpQuery": "nextToken" + } + }, + "userType": { + "target": "com.amazonaws.grafana#UserType", + "traits": { + "smithy.api#documentation": "

(Optional) If you specify SSO_USER, then only the permissions of Amazon Web Services SSO users\n are returned. If you specify SSO_GROUP, only the permissions of Amazon Web Services SSO groups\n are returned.

", + "smithy.api#httpQuery": "userType" + } + }, + "userId": { + "target": "com.amazonaws.grafana#SsoId", + "traits": { + "smithy.api#documentation": "

(Optional) Limits the results to only the user that matches this ID.

", + "smithy.api#httpQuery": "userId" + } + }, + "groupId": { + "target": "com.amazonaws.grafana#SsoId", + "traits": { + "smithy.api#documentation": "

(Optional) Limits the results to only the group that matches this ID.

", + "smithy.api#httpQuery": "groupId" + } + }, + "workspaceId": { + "target": "com.amazonaws.grafana#WorkspaceId", + "traits": { + "smithy.api#documentation": "

The ID of the workspace to list permissions for. This parameter is required.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.grafana#ListPermissionsResponse": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.grafana#PaginationToken", + "traits": { + "smithy.api#documentation": "

The token to use in a subsequent ListPermissions operation to return\n the next set of results.

" + } + }, + "permissions": { + "target": "com.amazonaws.grafana#PermissionEntryList", + "traits": { + "smithy.api#documentation": "

The permissions returned by the operation.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.grafana#ListWorkspaces": { + "type": "operation", + "input": { + "target": "com.amazonaws.grafana#ListWorkspacesRequest" + }, + "output": { + "target": "com.amazonaws.grafana#ListWorkspacesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.grafana#AccessDeniedException" + }, + { + "target": "com.amazonaws.grafana#InternalServerException" + }, + { + "target": "com.amazonaws.grafana#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a list of Amazon Managed Grafana workspaces in the account, with some information\n about each workspace. For more complete information about one workspace, use DescribeWorkspace.

", + "smithy.api#http": { + "method": "GET", + "uri": "/workspaces", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "items": "workspaces", + "pageSize": "maxResults" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.grafana#ListWorkspacesRequest": { + "type": "structure", + "members": { + "maxResults": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of workspaces to include in the results.

", + "smithy.api#httpQuery": "maxResults", + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "nextToken": { + "target": "com.amazonaws.grafana#PaginationToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of workspaces to return. (You receive this token from a\n previous ListWorkspaces operation.)

", + "smithy.api#httpQuery": "nextToken" + } + } + } + }, + "com.amazonaws.grafana#ListWorkspacesResponse": { + "type": "structure", + "members": { + "workspaces": { + "target": "com.amazonaws.grafana#WorkspaceList", + "traits": { + "smithy.api#documentation": "

An array of structures that contain some information about the workspaces in the account.

", + "smithy.api#required": {} + } + }, + "nextToken": { + "target": "com.amazonaws.grafana#PaginationToken", + "traits": { + "smithy.api#documentation": "

The token to use when requesting the next set of workspaces.

" + } + } + } + }, + "com.amazonaws.grafana#LoginValidityDuration": { + "type": "integer" + }, + "com.amazonaws.grafana#NotificationDestinationType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "SNS", + "name": "SNS", + "documentation": "AWS Simple Notification Service" + } + ] + } + }, + "com.amazonaws.grafana#NotificationDestinationsList": { + "type": "list", + "member": { + "target": "com.amazonaws.grafana#NotificationDestinationType" + } + }, + "com.amazonaws.grafana#OrganizationRoleName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.grafana#OrganizationalUnit": { + "type": "string" + }, + "com.amazonaws.grafana#OrganizationalUnitList": { + "type": "list", + "member": { + "target": "com.amazonaws.grafana#OrganizationalUnit" + }, + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.grafana#PaginationToken": { + "type": "string" + }, + "com.amazonaws.grafana#Permission": { + "type": "resource", + "identifiers": { + "permissionId": { + "target": "smithy.api#String" + }, + "workspaceId": { + "target": "com.amazonaws.grafana#WorkspaceId" + } + }, + "list": { + "target": "com.amazonaws.grafana#ListPermissions" + }, + "collectionOperations": [ + { + "target": "com.amazonaws.grafana#UpdatePermissions" + } + ], + "traits": { + "aws.api#arn": { + "template": "workspaces/{workspaceId}/permissions/{permissionId}", + "absolute": false, + "noAccount": false, + "noRegion": false + } + } + }, + "com.amazonaws.grafana#PermissionEntry": { + "type": "structure", + "members": { + "user": { + "target": "com.amazonaws.grafana#User", + "traits": { + "smithy.api#documentation": "

A structure with the ID of the user or group with this role.

", + "smithy.api#required": {} + } + }, + "role": { + "target": "com.amazonaws.grafana#Role", + "traits": { + "smithy.api#documentation": "

Specifies whether the user or group has the Admin\n or Editor role.

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

A structure containing the identity of one user or group and the Admin\n or Editor role that they have.

" + } + }, + "com.amazonaws.grafana#PermissionEntryList": { + "type": "list", + "member": { + "target": "com.amazonaws.grafana#PermissionEntry" + } + }, + "com.amazonaws.grafana#PermissionType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CUSTOMER_MANAGED", + "name": "CUSTOMER_MANAGED", + "documentation": "Customer Managed" + }, + { + "value": "SERVICE_MANAGED", + "name": "SERVICE_MANAGED", + "documentation": "Service Managed" + } + ] + } + }, + "com.amazonaws.grafana#ResourceNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The value of a parameter in the request caused an error.

", + "smithy.api#required": {} + } + }, + "resourceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The ID of the resource that is associated with the error.

", + "smithy.api#required": {} + } + }, + "resourceType": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The type of the resource that is associated with the error.

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

The request references a resource that does not exist.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.grafana#Role": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ADMIN", + "name": "ADMIN", + "documentation": "Role Admin." + }, + { + "value": "EDITOR", + "name": "EDITOR", + "documentation": "Role Editor." + } + ] + } + }, + "com.amazonaws.grafana#RoleValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + } + } + }, + "com.amazonaws.grafana#RoleValueList": { + "type": "list", + "member": { + "target": "com.amazonaws.grafana#RoleValue" + } + }, + "com.amazonaws.grafana#RoleValues": { + "type": "structure", + "members": { + "editor": { + "target": "com.amazonaws.grafana#RoleValueList", + "traits": { + "smithy.api#documentation": "

A list of groups from the SAML assertion attribute to grant the Grafana\n Editor role to.

" + } + }, + "admin": { + "target": "com.amazonaws.grafana#RoleValueList", + "traits": { + "smithy.api#documentation": "

A list of groups from the SAML assertion attribute to grant the Grafana\n Admin role to.

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

This structure defines which groups defined in the SAML assertion attribute are to be mapped \n to the Grafana Admin and Editor roles in the workspace.

" + } + }, + "com.amazonaws.grafana#SSOClientId": { + "type": "string" + }, + "com.amazonaws.grafana#SamlAuthentication": { + "type": "structure", + "members": { + "status": { + "target": "com.amazonaws.grafana#SamlConfigurationStatus", + "traits": { + "smithy.api#documentation": "

Specifies whether the workspace's SAML configuration is complete.

", + "smithy.api#required": {} + } + }, + "configuration": { + "target": "com.amazonaws.grafana#SamlConfiguration", + "traits": { + "smithy.api#documentation": "

A structure containing details about how this workspace works with \n SAML.

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

A structure containing information about how this workspace works with \n SAML.

" + } + }, + "com.amazonaws.grafana#SamlConfiguration": { + "type": "structure", + "members": { + "idpMetadata": { + "target": "com.amazonaws.grafana#IdpMetadata", + "traits": { + "smithy.api#documentation": "

A structure containing the identity provider (IdP) metadata used to integrate the\n identity provider with this workspace.

", + "smithy.api#required": {} + } + }, + "assertionAttributes": { + "target": "com.amazonaws.grafana#AssertionAttributes", + "traits": { + "smithy.api#documentation": "

A structure that defines which attributes in the SAML assertion are to be used to define information about\n the users authenticated by that IdP to use the workspace.

" + } + }, + "roleValues": { + "target": "com.amazonaws.grafana#RoleValues", + "traits": { + "smithy.api#documentation": "

A structure containing arrays that map group names in the SAML assertion to the \n Grafana Admin and Editor roles in the workspace.

" + } + }, + "allowedOrganizations": { + "target": "com.amazonaws.grafana#AllowedOrganizations", + "traits": { + "smithy.api#documentation": "

Lists which organizations defined in the SAML assertion are allowed to use the Amazon Managed Grafana workspace.\n If this is empty, all organizations in the assertion attribute have access.

" + } + }, + "loginValidityDuration": { + "target": "com.amazonaws.grafana#LoginValidityDuration", + "traits": { + "smithy.api#documentation": "

How long a sign-on session by a SAML user is valid, before the user has to sign on\n again.

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

A structure containing information about how this workspace works with \n SAML.

" + } + }, + "com.amazonaws.grafana#SamlConfigurationStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CONFIGURED", + "name": "CONFIGURED", + "documentation": "Indicates that SAML on an AMG workspace is enabled and has been configured." + }, + { + "value": "NOT_CONFIGURED", + "name": "NOT_CONFIGURED", + "documentation": "Indicates that SAML on an AMG workspace is enabled but has not been configured." + } + ] + } + }, + "com.amazonaws.grafana#ServiceQuotaExceededException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A description of the error.

", + "smithy.api#required": {} + } + }, + "resourceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The ID of the resource that is associated with the error.

", + "smithy.api#required": {} + } + }, + "resourceType": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The type of the resource that is associated with the error.

", + "smithy.api#required": {} + } + }, + "serviceCode": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The value of a parameter in the request caused an error.

", + "smithy.api#required": {} + } + }, + "quotaCode": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The ID of the service quota that was exceeded.

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

The request would cause a service quota to be exceeded.

", + "smithy.api#error": "client", + "smithy.api#httpError": 402 + } + }, + "com.amazonaws.grafana#SsoId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 47 + } + } + }, + "com.amazonaws.grafana#StackSetName": { + "type": "string" + }, + "com.amazonaws.grafana#ThrottlingException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A description of the error.

", + "smithy.api#required": {} + } + }, + "serviceCode": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The ID of the service that is associated with the error.

" + } + }, + "quotaCode": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The ID of the service quota that was exceeded.

" + } + }, + "retryAfterSeconds": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The value of a parameter in the request caused an error.

", + "smithy.api#httpHeader": "Retry-After" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request was denied because of request throttling. Retry the request.

", + "smithy.api#error": "client", + "smithy.api#httpError": 429, + "smithy.api#retryable": {} + } + }, + "com.amazonaws.grafana#UpdateAction": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ADD", + "name": "ADD", + "documentation": "Add permissions." + }, + { + "value": "REVOKE", + "name": "REVOKE", + "documentation": "Revoke permissions." + } + ] + } + }, + "com.amazonaws.grafana#UpdateError": { + "type": "structure", + "members": { + "code": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The error code.

", + "smithy.api#range": { + "min": 100, + "max": 999 + }, + "smithy.api#required": {} + } + }, + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The message for this error.

", + "smithy.api#required": {} + } + }, + "causedBy": { + "target": "com.amazonaws.grafana#UpdateInstruction", + "traits": { + "smithy.api#documentation": "

Specifies which permission update caused the error.

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

A structure containing information about one error encountered while performing an\n UpdatePermissions operation.

" + } + }, + "com.amazonaws.grafana#UpdateErrorList": { + "type": "list", + "member": { + "target": "com.amazonaws.grafana#UpdateError" + } + }, + "com.amazonaws.grafana#UpdateInstruction": { + "type": "structure", + "members": { + "action": { + "target": "com.amazonaws.grafana#UpdateAction", + "traits": { + "smithy.api#documentation": "

Specifies whether this update is to add or revoke role permissions.

", + "smithy.api#required": {} + } + }, + "role": { + "target": "com.amazonaws.grafana#Role", + "traits": { + "smithy.api#documentation": "

The role to add or revoke for the user or the group specified in users.

", + "smithy.api#required": {} + } + }, + "users": { + "target": "com.amazonaws.grafana#UserList", + "traits": { + "smithy.api#documentation": "

A structure that specifies the user or group to add or revoke the role for.

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

Contains the instructions for one Grafana role permission update in a\n UpdatePermissions operation.

" + } + }, + "com.amazonaws.grafana#UpdateInstructionBatch": { + "type": "list", + "member": { + "target": "com.amazonaws.grafana#UpdateInstruction" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 20 + } + } + }, + "com.amazonaws.grafana#UpdatePermissions": { + "type": "operation", + "input": { + "target": "com.amazonaws.grafana#UpdatePermissionsRequest" + }, + "output": { + "target": "com.amazonaws.grafana#UpdatePermissionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.grafana#AccessDeniedException" + }, + { + "target": "com.amazonaws.grafana#InternalServerException" + }, + { + "target": "com.amazonaws.grafana#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.grafana#ThrottlingException" + }, + { + "target": "com.amazonaws.grafana#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates which users in a workspace have the Grafana Admin or Editor roles.

", + "smithy.api#http": { + "method": "PATCH", + "uri": "/workspaces/{workspaceId}/permissions", + "code": 200 + } + } + }, + "com.amazonaws.grafana#UpdatePermissionsRequest": { + "type": "structure", + "members": { + "updateInstructionBatch": { + "target": "com.amazonaws.grafana#UpdateInstructionBatch", + "traits": { + "smithy.api#documentation": "

An array of structures that contain the permission updates to make.

", + "smithy.api#required": {} + } + }, + "workspaceId": { + "target": "com.amazonaws.grafana#WorkspaceId", + "traits": { + "smithy.api#documentation": "

The ID of the workspace to update.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.grafana#UpdatePermissionsResponse": { + "type": "structure", + "members": { + "errors": { + "target": "com.amazonaws.grafana#UpdateErrorList", + "traits": { + "smithy.api#documentation": "

An array of structures that contain the errors from the operation, if any.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.grafana#UpdateWorkspace": { + "type": "operation", + "input": { + "target": "com.amazonaws.grafana#UpdateWorkspaceRequest" + }, + "output": { + "target": "com.amazonaws.grafana#UpdateWorkspaceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.grafana#AccessDeniedException" + }, + { + "target": "com.amazonaws.grafana#ConflictException" + }, + { + "target": "com.amazonaws.grafana#InternalServerException" + }, + { + "target": "com.amazonaws.grafana#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.grafana#ThrottlingException" + }, + { + "target": "com.amazonaws.grafana#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Modifies an existing Amazon Managed Grafana workspace. If you use this operation and omit any \n optional parameters, the existing values of those parameters are not changed.

\n

To modify the user authentication methods that the workspace uses, such as SAML or Amazon Web Services SSO, \n use UpdateWorkspaceAuthentication.

\n

To modify which users in the workspace have the Admin and Editor Grafana roles, \n use UpdatePermissions.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/workspaces/{workspaceId}", + "code": 202 + } + } + }, + "com.amazonaws.grafana#UpdateWorkspaceAuthentication": { + "type": "operation", + "input": { + "target": "com.amazonaws.grafana#UpdateWorkspaceAuthenticationRequest" + }, + "output": { + "target": "com.amazonaws.grafana#UpdateWorkspaceAuthenticationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.grafana#AccessDeniedException" + }, + { + "target": "com.amazonaws.grafana#ConflictException" + }, + { + "target": "com.amazonaws.grafana#InternalServerException" + }, + { + "target": "com.amazonaws.grafana#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.grafana#ThrottlingException" + }, + { + "target": "com.amazonaws.grafana#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Use this operation to define the identity provider (IdP) that this workspace\n authenticates users from, using SAML. You can also map SAML assertion attributes to\n workspace user information and define which groups in the assertion attribute are to have\n the Admin and Editor roles in the workspace.

", + "smithy.api#http": { + "method": "POST", + "uri": "/workspaces/{workspaceId}/authentication", + "code": 200 + } + } + }, + "com.amazonaws.grafana#UpdateWorkspaceAuthenticationRequest": { + "type": "structure", + "members": { + "workspaceId": { + "target": "com.amazonaws.grafana#WorkspaceId", + "traits": { + "smithy.api#documentation": "

The ID of the workspace to update the authentication for.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "authenticationProviders": { + "target": "com.amazonaws.grafana#AuthenticationProviders", + "traits": { + "smithy.api#documentation": "

Specifies whether this workspace uses SAML 2.0, Amazon Web Services Single Sign On, or both to authenticate \n users for using the Grafana console within a workspace. For more information, \n see User authentication in \n Amazon Managed Grafana.

", + "smithy.api#required": {} + } + }, + "samlConfiguration": { + "target": "com.amazonaws.grafana#SamlConfiguration", + "traits": { + "smithy.api#documentation": "

If the workspace uses SAML, use this structure to\n map SAML assertion attributes to workspace user information and \n define which groups in the assertion attribute are to have the Admin and Editor roles\n in the workspace.

" + } + } + } + }, + "com.amazonaws.grafana#UpdateWorkspaceAuthenticationResponse": { + "type": "structure", + "members": { + "authentication": { + "target": "com.amazonaws.grafana#AuthenticationDescription", + "traits": { + "smithy.api#documentation": "

A structure that describes the user authentication for this workspace after the update is made.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.grafana#UpdateWorkspaceRequest": { + "type": "structure", + "members": { + "accountAccessType": { + "target": "com.amazonaws.grafana#AccountAccessType", + "traits": { + "smithy.api#documentation": "

Specifies whether the workspace can access Amazon Web Services resources in this Amazon Web Services account only, or whether it can also access Amazon Web Services resources in\n other accounts in the same organization. If you specify ORGANIZATION, you must\n specify which organizational units the workspace can access in the\n workspaceOrganizationalUnits parameter.

" + } + }, + "organizationRoleName": { + "target": "com.amazonaws.grafana#OrganizationRoleName", + "traits": { + "smithy.api#documentation": "

The name of an IAM role that already exists to use to access resources through Organizations.

" + } + }, + "permissionType": { + "target": "com.amazonaws.grafana#PermissionType", + "traits": { + "smithy.api#documentation": "

If you specify Service Managed, Amazon Managed Grafana automatically creates\n the IAM roles and provisions the permissions that the workspace needs to use\n Amazon Web Services data sources and notification channels.

\n

If you specify CUSTOMER_MANAGED, you will manage those roles and\n permissions yourself. If you are creating this workspace in a member account of an\n organization and that account is not a delegated administrator account, and you want the workspace to access data sources in other Amazon Web Services\n accounts in the organization, you must choose CUSTOMER_MANAGED.

\n

For more information, see Amazon Managed Grafana permissions and policies for\n Amazon Web Services data sources and notification channels\n

" + } + }, + "stackSetName": { + "target": "com.amazonaws.grafana#StackSetName", + "traits": { + "smithy.api#documentation": "

The name of the CloudFormation stack set to use to generate IAM roles\n to be used for this workspace.

" + } + }, + "workspaceDataSources": { + "target": "com.amazonaws.grafana#DataSourceTypesList", + "traits": { + "smithy.api#documentation": "

Specify the Amazon Web Services data sources that you want to be queried in this\n workspace. Specifying these data sources here enables Amazon Managed Grafana to create IAM roles and permissions that allow Amazon Managed Grafana to read data from these\n sources. You must still add them as data sources in the Grafana console in the\n workspace.

\n

If you don't specify a data source here, you can still add it as a data source later in\n the workspace console. However, you will then have to manually configure permissions for\n it.

" + } + }, + "workspaceDescription": { + "target": "com.amazonaws.grafana#Description", + "traits": { + "smithy.api#documentation": "

A description for the workspace. This is used only to help you identify this workspace.

" + } + }, + "workspaceId": { + "target": "com.amazonaws.grafana#WorkspaceId", + "traits": { + "smithy.api#documentation": "

The ID of the workspace to update.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "workspaceName": { + "target": "com.amazonaws.grafana#WorkspaceName", + "traits": { + "smithy.api#documentation": "

A new name for the workspace to update.

" + } + }, + "workspaceNotificationDestinations": { + "target": "com.amazonaws.grafana#NotificationDestinationsList", + "traits": { + "smithy.api#documentation": "

Specify the Amazon Web Services notification channels that you plan to use in this workspace. Specifying these \n data sources here enables Amazon Managed Grafana to create IAM roles and permissions that allow \n Amazon Managed Grafana to use these channels.

" + } + }, + "workspaceOrganizationalUnits": { + "target": "com.amazonaws.grafana#OrganizationalUnitList", + "traits": { + "smithy.api#documentation": "

Specifies the organizational units that this workspace is allowed to use data sources\n from, if this workspace is in an account that is part of an organization.

" + } + }, + "workspaceRoleArn": { + "target": "com.amazonaws.grafana#IamRoleArn", + "traits": { + "smithy.api#documentation": "

The workspace needs an IAM role that grants permissions to the Amazon Web Services resources that the \n workspace will view data from. If you already have a role that you want to use, specify it here. If you omit\n this field and you specify some Amazon Web Services resources in workspaceDataSources or\n workspaceNotificationDestinations, a new IAM role with the necessary permissions is \n automatically created.

" + } + } + } + }, + "com.amazonaws.grafana#UpdateWorkspaceResponse": { + "type": "structure", + "members": { + "workspace": { + "target": "com.amazonaws.grafana#WorkspaceDescription", + "traits": { + "smithy.api#documentation": "

A structure containing data about the workspace that was created.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.grafana#User": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.grafana#SsoId", + "traits": { + "smithy.api#documentation": "

The ID of the user or group.

", + "smithy.api#required": {} + } + }, + "type": { + "target": "com.amazonaws.grafana#UserType", + "traits": { + "smithy.api#documentation": "

Specifies whether this is a single user or a group.

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

A structure that specifies one user or group in the workspace.

" + } + }, + "com.amazonaws.grafana#UserList": { + "type": "list", + "member": { + "target": "com.amazonaws.grafana#User" + } + }, + "com.amazonaws.grafana#UserType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "SSO_USER", + "name": "SSO_USER", + "documentation": "SSO user." + }, + { + "value": "SSO_GROUP", + "name": "SSO_GROUP", + "documentation": "SSO group." + } + ] + } + }, + "com.amazonaws.grafana#ValidationException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A description of the error.

", + "smithy.api#required": {} + } + }, + "reason": { + "target": "com.amazonaws.grafana#ValidationExceptionReason", + "traits": { + "smithy.api#documentation": "

The reason that the operation failed.

", + "smithy.api#required": {} + } + }, + "fieldList": { + "target": "com.amazonaws.grafana#ValidationExceptionFieldList", + "traits": { + "smithy.api#documentation": "

A list of fields that might be associated with the error.

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

The value of a parameter in the request caused an error.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.grafana#ValidationExceptionField": { + "type": "structure", + "members": { + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the field that caused the validation error.

", + "smithy.api#required": {} + } + }, + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A message describing why this field couldn't be validated.

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

A structure that contains information about a request parameter that caused an error.

" + } + }, + "com.amazonaws.grafana#ValidationExceptionFieldList": { + "type": "list", + "member": { + "target": "com.amazonaws.grafana#ValidationExceptionField" + } + }, + "com.amazonaws.grafana#ValidationExceptionReason": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "UNKNOWN_OPERATION", + "name": "UNKNOWN_OPERATION" + }, + { + "value": "CANNOT_PARSE", + "name": "CANNOT_PARSE" + }, + { + "value": "FIELD_VALIDATION_FAILED", + "name": "FIELD_VALIDATION_FAILED" + }, + { + "value": "OTHER", + "name": "OTHER" + } + ] + } + }, + "com.amazonaws.grafana#Workspace": { + "type": "resource", + "identifiers": { + "workspaceId": { + "target": "com.amazonaws.grafana#WorkspaceId" + } + }, + "create": { + "target": "com.amazonaws.grafana#CreateWorkspace" + }, + "read": { + "target": "com.amazonaws.grafana#DescribeWorkspace" + }, + "update": { + "target": "com.amazonaws.grafana#UpdateWorkspace" + }, + "delete": { + "target": "com.amazonaws.grafana#DeleteWorkspace" + }, + "list": { + "target": "com.amazonaws.grafana#ListWorkspaces" + }, + "traits": { + "aws.api#arn": { + "template": "workspaces/{workspaceId}", + "absolute": false, + "noAccount": false, + "noRegion": false + } + } + }, + "com.amazonaws.grafana#WorkspaceDescription": { + "type": "structure", + "members": { + "accountAccessType": { + "target": "com.amazonaws.grafana#AccountAccessType", + "traits": { + "smithy.api#documentation": "

Specifies whether the workspace can access Amazon Web Services resources in this Amazon Web Services account only, or whether it can also access Amazon Web Services resources in\n other accounts in the same organization. If this is ORGANIZATION, the\n workspaceOrganizationalUnits parameter specifies which organizational units\n the workspace can access.

" + } + }, + "created": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The date that the workspace was created.

", + "smithy.api#required": {} + } + }, + "dataSources": { + "target": "com.amazonaws.grafana#DataSourceTypesList", + "traits": { + "smithy.api#documentation": "

Specifies the Amazon Web Services data sources that have been configured to have IAM \n roles and permissions created to allow \n Amazon Managed Grafana to read data from these sources.

", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.grafana#Description", + "traits": { + "smithy.api#documentation": "

The user-defined description of the workspace.

" + } + }, + "endpoint": { + "target": "com.amazonaws.grafana#Endpoint", + "traits": { + "smithy.api#documentation": "

The URL that users can use to access the Grafana console in the workspace.

", + "smithy.api#required": {} + } + }, + "grafanaVersion": { + "target": "com.amazonaws.grafana#GrafanaVersion", + "traits": { + "smithy.api#documentation": "

The version of Grafana supported in this workspace.

", + "smithy.api#required": {} + } + }, + "id": { + "target": "com.amazonaws.grafana#WorkspaceId", + "traits": { + "smithy.api#documentation": "

The unique ID of this workspace.

", + "smithy.api#required": {} + } + }, + "modified": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The most recent date that the workspace was modified.

", + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.grafana#WorkspaceName", + "traits": { + "smithy.api#documentation": "

The name of the workspace.

" + } + }, + "organizationRoleName": { + "target": "com.amazonaws.grafana#OrganizationRoleName", + "traits": { + "smithy.api#documentation": "

The name of the IAM role that is used to access resources through Organizations.

" + } + }, + "notificationDestinations": { + "target": "com.amazonaws.grafana#NotificationDestinationsList", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services notification channels that Amazon Managed Grafana can automatically create IAM \n roles and permissions for, to allow \n Amazon Managed Grafana to use these channels.

" + } + }, + "organizationalUnits": { + "target": "com.amazonaws.grafana#OrganizationalUnitList", + "traits": { + "smithy.api#documentation": "

Specifies the organizational units that this workspace is allowed to use data sources\n from, if this workspace is in an account that is part of an organization.

" + } + }, + "permissionType": { + "target": "com.amazonaws.grafana#PermissionType", + "traits": { + "smithy.api#documentation": "

If this is Service Managed, Amazon Managed Grafana automatically creates the IAM roles \n and provisions the permissions that the workspace needs to use Amazon Web Services data sources and notification channels.

\n

If this is CUSTOMER_MANAGED, you manage those roles and permissions\n yourself. If you are creating this workspace in a member account of an organization and that account is not a\n delegated administrator account, and\n you want the workspace to access data sources in other Amazon Web Services accounts in the\n organization, you must choose CUSTOMER_MANAGED.

\n

For more information, see Amazon Managed Grafana permissions and policies for\n Amazon Web Services data sources and notification channels\n

" + } + }, + "stackSetName": { + "target": "com.amazonaws.grafana#StackSetName", + "traits": { + "smithy.api#documentation": "

The name of the CloudFormation stack set that is used to generate IAM roles\n to be used for this workspace.

" + } + }, + "status": { + "target": "com.amazonaws.grafana#WorkspaceStatus", + "traits": { + "smithy.api#documentation": "

The current status of the workspace.

", + "smithy.api#required": {} + } + }, + "workspaceRoleArn": { + "target": "com.amazonaws.grafana#IamRoleArn", + "traits": { + "smithy.api#documentation": "

The IAM role that grants permissions to the Amazon Web Services resources that the \n workspace will view data from. This role must already exist.

" + } + }, + "licenseType": { + "target": "com.amazonaws.grafana#LicenseType", + "traits": { + "smithy.api#documentation": "

Specifies whether this workspace has a full Grafana Enterprise license or a free trial license.

" + } + }, + "freeTrialConsumed": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether this workspace has already fully used its free trial for Grafana Enterprise.

" + } + }, + "licenseExpiration": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

If this workspace has a full Grafana Enterprise license, this specifies when the license ends and\n will need to be renewed.

" + } + }, + "freeTrialExpiration": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

If this workspace is currently in the free trial period for Grafana Enterprise, this value specifies\n when that free trial ends.

" + } + }, + "authentication": { + "target": "com.amazonaws.grafana#AuthenticationSummary", + "traits": { + "smithy.api#documentation": "

A structure that describes whether the workspace uses SAML, Amazon Web Services SSO, or both methods\n for user authentication.

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

A structure containing information about an Amazon Managed Grafana workspace in your account.

" + } + }, + "com.amazonaws.grafana#WorkspaceId": { + "type": "string", + "traits": { + "smithy.api#pattern": "^g-[0-9a-f]{10}$" + } + }, + "com.amazonaws.grafana#WorkspaceList": { + "type": "list", + "member": { + "target": "com.amazonaws.grafana#WorkspaceSummary" + } + }, + "com.amazonaws.grafana#WorkspaceName": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[a-zA-Z0-9-._~]{1,255}$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.grafana#WorkspaceStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ACTIVE", + "name": "ACTIVE", + "documentation": "Workspace is active." + }, + { + "value": "CREATING", + "name": "CREATING", + "documentation": "Workspace is being created." + }, + { + "value": "DELETING", + "name": "DELETING", + "documentation": "Workspace is being deleted." + }, + { + "value": "FAILED", + "name": "FAILED", + "documentation": "Workspace is in an invalid state, it can only and should be deleted." + }, + { + "value": "UPDATING", + "name": "UPDATING", + "documentation": "Workspace is being updated." + }, + { + "value": "UPGRADING", + "name": "UPGRADING", + "documentation": "Workspace is being upgraded to enterprise." + }, + { + "value": "DELETION_FAILED", + "name": "DELETION_FAILED", + "documentation": "Workspace deletion failed." + }, + { + "value": "CREATION_FAILED", + "name": "CREATION_FAILED", + "documentation": "Workspace creation failed." + }, + { + "value": "UPDATE_FAILED", + "name": "UPDATE_FAILED", + "documentation": "Workspace update failed." + }, + { + "value": "UPGRADE_FAILED", + "name": "UPGRADE_FAILED", + "documentation": "Workspace upgrade failed." + }, + { + "value": "LICENSE_REMOVAL_FAILED", + "name": "LICENSE_REMOVAL_FAILED", + "documentation": "Failed to remove enterprise license from workspace." + } + ] + } + }, + "com.amazonaws.grafana#WorkspaceSummary": { + "type": "structure", + "members": { + "created": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The date that the workspace was created.

", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.grafana#Description", + "traits": { + "smithy.api#documentation": "

The customer-entered description of the workspace.

" + } + }, + "endpoint": { + "target": "com.amazonaws.grafana#Endpoint", + "traits": { + "smithy.api#documentation": "

The URL endpoint to use to access the Grafana console in the workspace.

", + "smithy.api#required": {} + } + }, + "grafanaVersion": { + "target": "com.amazonaws.grafana#GrafanaVersion", + "traits": { + "smithy.api#documentation": "

The Grafana version that the workspace is running.

", + "smithy.api#required": {} + } + }, + "id": { + "target": "com.amazonaws.grafana#WorkspaceId", + "traits": { + "smithy.api#documentation": "

The unique ID of the workspace.

", + "smithy.api#required": {} + } + }, + "modified": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The most recent date that the workspace was modified.

", + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.grafana#WorkspaceName", + "traits": { + "smithy.api#documentation": "

The name of the workspace.

" + } + }, + "notificationDestinations": { + "target": "com.amazonaws.grafana#NotificationDestinationsList", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services notification channels that Amazon Managed Grafana can automatically\n create IAM roles and permissions for, which allows Amazon Managed Grafana to use\n these channels.

" + } + }, + "status": { + "target": "com.amazonaws.grafana#WorkspaceStatus", + "traits": { + "smithy.api#documentation": "

The current status of the workspace.

", + "smithy.api#required": {} + } + }, + "authentication": { + "target": "com.amazonaws.grafana#AuthenticationSummary", + "traits": { + "smithy.api#documentation": "

A structure containing information about the authentication methods used in \n the workspace.

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

A structure that contains some information about one workspace in the account.

" + } + } + } +} \ No newline at end of file diff --git a/codegen/sdk-codegen/aws-models/kendra.2019-02-03.json b/codegen/sdk-codegen/aws-models/kendra.2019-02-03.json index b46b9f05fa3..6b584144084 100644 --- a/codegen/sdk-codegen/aws-models/kendra.2019-02-03.json +++ b/codegen/sdk-codegen/aws-models/kendra.2019-02-03.json @@ -332,30 +332,30 @@ "GreaterThan": { "target": "com.amazonaws.kendra#DocumentAttribute", "traits": { - "smithy.api#documentation": "

Performs a greater than operation on two document attributes. Use\n with a document attribute of type Integer or\n Long.

" + "smithy.api#documentation": "

Performs a greater than operation on two document attributes. Use\n with a document attribute of type Date or\n Long.

" } }, "GreaterThanOrEquals": { "target": "com.amazonaws.kendra#DocumentAttribute", "traits": { - "smithy.api#documentation": "

Performs a greater or equals than operation on two document\n attributes. Use with a document attribute of type Integer\n or Long.

" + "smithy.api#documentation": "

Performs a greater or equals than operation on two document\n attributes. Use with a document attribute of type Date\n or Long.

" } }, "LessThan": { "target": "com.amazonaws.kendra#DocumentAttribute", "traits": { - "smithy.api#documentation": "

Performs a less than operation on two document attributes. Use with\n a document attribute of type Integer or\n Long.

" + "smithy.api#documentation": "

Performs a less than operation on two document attributes. Use with\n a document attribute of type Date or\n Long.

" } }, "LessThanOrEquals": { "target": "com.amazonaws.kendra#DocumentAttribute", "traits": { - "smithy.api#documentation": "

Performs a less than or equals operation on two document attributes.\n Use with a document attribute of type Integer or\n Long.

" + "smithy.api#documentation": "

Performs a less than or equals operation on two document attributes.\n Use with a document attribute of type Date or\n Long.

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

Provides filtering the query results based on document\n attributes.

\n

When you use the AndAllFilters or\n OrAllFilters, filters you can use 2 layers under the\n first attribute filter. For example, you can use:

\n

\n \n

\n
    \n
  1. \n

    \n \n

    \n
  2. \n
  3. \n

    \n \n

    \n
  4. \n
\n

If you use more than 2 layers, you receive a\n ValidationException exception with the message\n \"AttributeFilter cannot have a depth of more than\n 2.\"

\n

If you use more than 10 attribute filters, you receive a \n ValidationException exception with the message \n \"AttributeFilter cannot have a length of more than 10\".

" + "smithy.api#documentation": "

Provides filtering the query results based on document\n attributes.

\n

When you use the AndAllFilters or\n OrAllFilters, filters you can use 2 layers under the\n first attribute filter. For example, you can use:

\n

\n \n

\n
    \n
  1. \n

    \n \n

    \n
  2. \n
  3. \n

    \n \n

    \n
  4. \n
\n

If you use more than 2 layers, you receive a\n ValidationException exception with the message\n \"AttributeFilter cannot have a depth of more \n than 2.\"

\n

If you use more than 10 attribute filters in a given list for \n AndAllFilters or OrAllFilters, you receive \n a ValidationException with the message \n \"AttributeFilter cannot have a length of more than 10\".

" } }, "com.amazonaws.kendra#AttributeFilterList": { @@ -1543,7 +1543,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a data source that you use to with an Amazon Kendra index.

\n

You specify a name, data source connector type and description for\n your data source. You also specify configuration information such as\n document metadata (author, source URI, and so on) and user context\n information.

\n

\n CreateDataSource is a synchronous operation. The\n operation returns 200 if the data source was successfully created.\n Otherwise, an exception is raised.

" + "smithy.api#documentation": "

Creates a data source that you want to use with an Amazon Kendra index.

\n

You specify a name, data source connector type and description for\n your data source. You also specify configuration information for the \n data source connector.

\n

\n CreateDataSource is a synchronous operation. The\n operation returns 200 if the data source was successfully created.\n Otherwise, an exception is raised.

" } }, "com.amazonaws.kendra#CreateDataSourceRequest": { @@ -1606,6 +1606,12 @@ "smithy.api#documentation": "

A token that you provide to identify the request to create a data\n source. Multiple calls to the CreateDataSource operation with\n the same client token will create only one data source.

", "smithy.api#idempotencyToken": {} } + }, + "LanguageCode": { + "target": "com.amazonaws.kendra#LanguageCode", + "traits": { + "smithy.api#documentation": "

The code for a language. This allows you to support a language for all \n documents when creating the data source. English is supported \n by default. For more information on supported languages, including their codes, \n see Adding \n documents in languages other than English.

" + } } } }, @@ -1711,6 +1717,12 @@ "smithy.api#documentation": "

A token that you provide to identify the request to create a FAQ. Multiple calls to\n the CreateFaqRequest operation with the same client token will create only\n one FAQ.

", "smithy.api#idempotencyToken": {} } + }, + "LanguageCode": { + "target": "com.amazonaws.kendra#LanguageCode", + "traits": { + "smithy.api#documentation": "

The code for a language. This allows you to support a language \n for the FAQ document. English is supported by default. \n For more information on supported languages, including their codes, \n see Adding \n documents in languages other than English.

" + } } } }, @@ -1817,7 +1829,13 @@ "UserContextPolicy": { "target": "com.amazonaws.kendra#UserContextPolicy", "traits": { - "smithy.api#documentation": "

The user context policy.

\n
\n
ATTRIBUTE_FILTER
\n
\n

All indexed content is searchable and displayable\n for all users. If there is an access control list, it\n is ignored. You can filter on user and group attributes.\n

\n
\n
USER_TOKEN
\n
\n

Enables SSO and token-based user access control.\n All documents with no access control and all documents\n accessible to the user will be searchable and\n displayable.\n

\n
\n
" + "smithy.api#documentation": "

The user context policy.

\n
\n
ATTRIBUTE_FILTER
\n
\n

All indexed content is searchable and displayable\n for all users. If you want to filter search results on \n user context, you can use the attribute filters of\n _user_id and _group_ids or\n you can provide user and group information in UserContext.\n

\n
\n
USER_TOKEN
\n
\n

Enables token-based user access control to filter \n search results on user context. All documents with no \n access control and all documents accessible to the user \n will be searchable and displayable.\n

\n
\n
" + } + }, + "UserGroupResolutionConfiguration": { + "target": "com.amazonaws.kendra#UserGroupResolutionConfiguration", + "traits": { + "smithy.api#documentation": "

Enables fetching access levels of groups and users from an AWS Single Sign-On \n identity source. To configure this, see \n UserGroupResolutionConfiguration.

" } } } @@ -2012,7 +2030,7 @@ "ClientToken": { "target": "com.amazonaws.kendra#ClientTokenName", "traits": { - "smithy.api#documentation": "

A token that you provide to identify the request to create a \n thesaurus. Multiple calls to the CreateThesaurus operation \n with the same client token will create only one index.\n

", + "smithy.api#documentation": "

A token that you provide to identify the request to create a \n thesaurus. Multiple calls to the CreateThesaurus operation \n with the same client token will create only one thesaurus.\n

", "smithy.api#idempotencyToken": {} } } @@ -2254,6 +2272,12 @@ "traits": { "smithy.api#documentation": "

The status of the data source. When the status is\n ACTIVE the data source is ready to use.

" } + }, + "LanguageCode": { + "target": "com.amazonaws.kendra#LanguageCode", + "traits": { + "smithy.api#documentation": "

The code for a language. This shows a supported language for all documents \n in the data source. English is supported by default. \n For more information on supported languages, including their codes, \n see Adding \n documents in languages other than English.

" + } } }, "traits": { @@ -3056,6 +3080,12 @@ "traits": { "smithy.api#documentation": "

When the Status field value is FAILED, the\n ErrorMessage field contains a description of the error that\n caused the data source to fail.

" } + }, + "LanguageCode": { + "target": "com.amazonaws.kendra#LanguageCode", + "traits": { + "smithy.api#documentation": "

The code for a language. This shows a supported language for all \n documents in the data source. English is supported by \n default. For more information on supported languages, including their codes, \n see Adding \n documents in languages other than English.

" + } } } }, @@ -3172,6 +3202,12 @@ "traits": { "smithy.api#documentation": "

The file format used by the input files for the FAQ.

" } + }, + "LanguageCode": { + "target": "com.amazonaws.kendra#LanguageCode", + "traits": { + "smithy.api#documentation": "

The code for a language. This shows a supported language \n for the FAQ document. English is supported by default. \n For more information on supported languages, including their codes, \n see Adding \n documents in languages other than English.

" + } } } }, @@ -3308,6 +3344,12 @@ "traits": { "smithy.api#documentation": "

The user context policy for the Amazon Kendra index.

" } + }, + "UserGroupResolutionConfiguration": { + "target": "com.amazonaws.kendra#UserGroupResolutionConfiguration", + "traits": { + "smithy.api#documentation": "

Shows whether you have enabled the configuration for fetching access \n levels of groups and users from an AWS Single Sign-On identity source.

" + } } } }, @@ -3484,7 +3526,7 @@ "CreatedAt": { "target": "com.amazonaws.kendra#Timestamp", "traits": { - "smithy.api#documentation": "

Shows the date-time a block list for query suggestions was last created.

" + "smithy.api#documentation": "

Shows the date-time a block list for query suggestions was created.

" } }, "UpdatedAt": { @@ -4420,6 +4462,12 @@ "traits": { "smithy.api#documentation": "

The file type used to create the FAQ.

" } + }, + "LanguageCode": { + "target": "com.amazonaws.kendra#LanguageCode", + "traits": { + "smithy.api#documentation": "

The code for a language. This shows a supported language for the FAQ document \n as part of the summary information for FAQs. English is supported by default. \n For more information on supported languages, including their codes, \n see Adding \n documents in languages other than English.

" + } } }, "traits": { @@ -4608,7 +4656,7 @@ "S3PathforGroupMembers": { "target": "com.amazonaws.kendra#S3Path", "traits": { - "smithy.api#documentation": "

If you have more than 1000 users and/or sub groups for a single group, \n you need to provide the path to the S3 file that lists your users and sub \n groups for a group. Your sub groups can contain more than 1000 users, but \n the list of sub groups that belong to a group (and/or users) must be no \n more than 1000.

" + "smithy.api#documentation": "

If you have more than 1000 users and/or sub groups for a single group, \n you need to provide the path to the S3 file that lists your users and sub \n groups for a group. Your sub groups can contain more than 1000 users, but \n the list of sub groups that belong to a group (and/or users) must be no \n more than 1000.

\n

You can download this \n example \n S3 file that uses the correct format for listing group members. Note, \n dataSourceId is optional. The value of type \n for a group is always GROUP and for a user it is \n always USER.

" } } }, @@ -5103,6 +5151,17 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.kendra#LanguageCode": { + "type": "string", + "traits": { + "smithy.api#documentation": "

The code for a language. The default language is English. \n For more information on supported languages, including their codes, \n see Adding \n documents in languages other than English.

", + "smithy.api#length": { + "min": 2, + "max": 10 + }, + "smithy.api#pattern": "^[a-zA-Z-]*$" + } + }, "com.amazonaws.kendra#ListDataSourceSyncJobs": { "type": "operation", "input": { @@ -5160,7 +5219,7 @@ "NextToken": { "target": "com.amazonaws.kendra#NextToken", "traits": { - "smithy.api#documentation": "

If the result of the previous request to\n GetDataSourceSyncJobHistory was truncated, include the\n NextToken to fetch the next set of jobs.

" + "smithy.api#documentation": "

If the previous response was incomplete (because there is more data to retrieve), \n Amazon Kendra returns a pagination token in the response. You can use this pagination token \n to retrieve the next set of jobs.

" } }, "MaxResults": { @@ -5195,7 +5254,7 @@ "NextToken": { "target": "com.amazonaws.kendra#NextToken", "traits": { - "smithy.api#documentation": "

The GetDataSourceSyncJobHistory operation returns a page\n of vocabularies at a time. The maximum size of the page is set by the\n MaxResults parameter. If there are more jobs in the list\n than the page size, Amazon Kendra returns the NextPage token. Include the\n token in the next request to the GetDataSourceSyncJobHistory\n operation to return in the next page of jobs.

" + "smithy.api#documentation": "

If the response is truncated, Amazon Kendra returns this token that you \n can use in the subsequent request to retrieve the next set of jobs.

" } } } @@ -5317,7 +5376,7 @@ "NextToken": { "target": "com.amazonaws.kendra#NextToken", "traits": { - "smithy.api#documentation": "

If the result of the previous request to ListFaqs was truncated, include\n the NextToken to fetch the next set of FAQs.

" + "smithy.api#documentation": "

If the previous response was incomplete (because there is more data to retrieve), \n Amazon Kendra returns a pagination token in the response. You can use this pagination token \n to retrieve the next set of FAQs.

" } }, "MaxResults": { @@ -5334,7 +5393,7 @@ "NextToken": { "target": "com.amazonaws.kendra#NextToken", "traits": { - "smithy.api#documentation": "

The ListFaqs operation returns a page of FAQs at a time. The maximum size\n of the page is set by the MaxResults parameter. If there are more jobs in\n the list than the page size, Amazon Kendra returns the NextPage token.\n Include the token in the next request to the ListFaqs operation to return\n the next page of FAQs.

" + "smithy.api#documentation": "

If the response is truncated, Amazon Kendra returns this token that you can use \n in the subsequent request to retrieve the next set of FAQs.

" } }, "FaqSummaryItems": { @@ -5403,13 +5462,13 @@ "NextToken": { "target": "com.amazonaws.kendra#NextToken", "traits": { - "smithy.api#documentation": "

\n The next items in the list of groups that go beyond the maximum.\n

" + "smithy.api#documentation": "

\n If the previous response was incomplete (because there is more data to retrieve), \n Amazon Kendra returns a pagination token in the response. You can use this pagination \n token to retrieve the next set of groups that are mapped to users before a \n given ordering or timestamp identifier.\n

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

\n The maximum results shown for a list of groups that are mapped to users before a \n given ordering or timestamp identifier. \n

" + "smithy.api#documentation": "

\n The maximum number of returned groups that are mapped to users before a \n given ordering or timestamp identifier. \n

" } } } @@ -5426,7 +5485,7 @@ "NextToken": { "target": "com.amazonaws.kendra#NextToken", "traits": { - "smithy.api#documentation": "

\n The next items in the list of groups that go beyond the maximum.\n

" + "smithy.api#documentation": "

\n If the response is truncated, Amazon Kendra returns this token that you can use \n in the subsequent request to retrieve the next set of groups that are \n mapped to users before a given ordering or timestamp identifier.\n

" } } } @@ -5689,7 +5748,7 @@ "ThesaurusSummaryItems": { "target": "com.amazonaws.kendra#ThesaurusSummaryItems", "traits": { - "smithy.api#documentation": "

An array of summary information for one or more thesauruses.

" + "smithy.api#documentation": "

An array of summary information for a thesaurus or multiple thesauri.

" } } } @@ -6216,7 +6275,7 @@ } ], "traits": { - "smithy.api#documentation": "

Maps users to their groups. You can also map sub groups to groups. \n For example, the group \"Company Intellectual Property Teams\" includes \n sub groups \"Research\" and \"Engineering\". These sub groups include their\n own list of users or people who work in these teams. Only users who work \n in research and engineering, and therefore belong in the intellectual \n property group, can see top-secret company documents in their search \n results.

\n

You map users to their groups when you want to filter search results \n for different users based on their group’s access to documents. For more \n information on filtering search results for different users, see \n Filtering \n on user context.

\n

If more than five PUT actions for a group are currently \n processing, a validation exception is thrown.

" + "smithy.api#documentation": "

Maps users to their groups so that you only need to provide \n the user ID when you issue the query.

\n

You can also map sub groups to groups. \n For example, the group \"Company Intellectual Property Teams\" includes \n sub groups \"Research\" and \"Engineering\". These sub groups include their\n own list of users or people who work in these teams. Only users who work \n in research and engineering, and therefore belong in the intellectual \n property group, can see top-secret company documents in their search \n results.

\n

You map users to their groups when you want to filter search results \n for different users based on their group’s access to documents. For more \n information on filtering search results for different users, see \n Filtering \n on user context.

\n

If more than five PUT actions for a group are currently \n processing, a validation exception is thrown.

" } }, "com.amazonaws.kendra#PutPrincipalMappingRequest": { @@ -6400,7 +6459,7 @@ "UserContext": { "target": "com.amazonaws.kendra#UserContext", "traits": { - "smithy.api#documentation": "

The user context token.

" + "smithy.api#documentation": "

The user context token or user and group information.

" } }, "VisitorId": { @@ -7361,6 +7420,10 @@ { "value": "LOW", "name": "LOW" + }, + { + "value": "NOT_AVAILABLE", + "name": "NOT_AVAILABLE" } ] } @@ -8486,7 +8549,7 @@ } }, "traits": { - "smithy.api#documentation": "

An array of summary information for one or more thesauruses.

" + "smithy.api#documentation": "

An array of summary information for a thesaurus or multiple thesauri.

" } }, "com.amazonaws.kendra#ThesaurusSummaryItems": { @@ -8668,6 +8731,12 @@ "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the new role to use when the data\n source is accessing resources on your behalf.

" } + }, + "LanguageCode": { + "target": "com.amazonaws.kendra#LanguageCode", + "traits": { + "smithy.api#documentation": "

The code for a language. This allows you to support a language for all \n documents when updating the data source. English is supported \n by default. For more information on supported languages, including their codes, \n see Adding \n documents in languages other than English.

" + } } } }, @@ -8752,7 +8821,13 @@ "UserContextPolicy": { "target": "com.amazonaws.kendra#UserContextPolicy", "traits": { - "smithy.api#documentation": "

The user user token context policy.

" + "smithy.api#documentation": "

The user context policy.

" + } + }, + "UserGroupResolutionConfiguration": { + "target": "com.amazonaws.kendra#UserGroupResolutionConfiguration", + "traits": { + "smithy.api#documentation": "

Enables fetching access levels of groups and users from an AWS Single Sign-On \n identity source. To configure this, see \n UserGroupResolutionConfiguration.

" } } } @@ -8996,7 +9071,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides the configuration information of the URLs to crawl.

\n

\n When selecting websites to index, you must adhere to \n the Amazon Acceptable Use Policy \n and all other Amazon terms. Remember that you must only use the Amazon Kendra web \n crawler to index your own webpages, or webpages that you have authorization to \n index.\n

" + "smithy.api#documentation": "

Provides the configuration information of the URLs to crawl.

\n

You can only crawl websites that use the secure communication protocol, \n Hypertext Transfer Protocol Secure (HTTPS). If you receive an error when \n crawling a website, it could be that the website is blocked from crawling.

\n

\n When selecting websites to index, you must adhere to \n the Amazon Acceptable Use Policy \n and all other Amazon terms. Remember that you must only use the Amazon Kendra web \n crawler to index your own webpages, or webpages that you have authorization to \n index.\n

" } }, "com.amazonaws.kendra#UserAccount": { @@ -9038,7 +9113,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides information about the user context for a Amazon Kendra index.

\n

This is used for filtering search results for different users based on their access \n to documents.

\n

You provide one of the following:

\n \n

If you provide both, an exception is thrown.

" + "smithy.api#documentation": "

Provides information about the user context for\n an\n Amazon Kendra index.

\n

This is used for filtering search results for different users based on their access \n to documents.

\n

You provide one of the following:

\n \n

If you provide both, an exception is thrown.

" } }, "com.amazonaws.kendra#UserContextPolicy": { @@ -9056,6 +9131,36 @@ ] } }, + "com.amazonaws.kendra#UserGroupResolutionConfiguration": { + "type": "structure", + "members": { + "UserGroupResolutionMode": { + "target": "com.amazonaws.kendra#UserGroupResolutionMode", + "traits": { + "smithy.api#documentation": "

The identity store provider (mode) you want to use to fetch access levels of groups and\n users. AWS Single Sign-On is currently the only available mode. Your users and groups\n must\n exist in an AWS SSO identity source in order to use this mode.

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

Provides the configuration information to fetch access levels \n of groups and users from an AWS Single Sign-On identity \n source. This is useful for setting up user context filtering, where \n Amazon Kendra filters search results for different users based on their \n group's access to documents. You can also map your users to their \n groups for user context filtering using the \n PutPrincipalMapping \n operation.

\n

To set up an AWS SSO identity source in the console to use with \n Amazon Kendra, see Getting started \n with an AWS SSO identity source. You must also grant the required \n permissions to use AWS SSO with Amazon Kendra. For more information, see \n IAM roles for \n AWS Single Sign-On.

" + } + }, + "com.amazonaws.kendra#UserGroupResolutionMode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "AWS_SSO", + "name": "AWS_SSO" + }, + { + "value": "NONE", + "name": "NONE" + } + ] + } + }, "com.amazonaws.kendra#UserId": { "type": "string", "traits": { @@ -9165,7 +9270,7 @@ "Urls": { "target": "com.amazonaws.kendra#Urls", "traits": { - "smithy.api#documentation": "

Specifies the seed or starting point URLs of the \n websites or the sitemap URLs of the websites you want to crawl.

\n

You can include website subdomains. You can list up to 100 seed \n URLs and up to three sitemap URLs.

\n

\n When selecting websites to index, you must adhere to \n the Amazon Acceptable Use Policy \n and all other Amazon terms. Remember that you must only use the Amazon Kendra \n web crawler to index your own webpages, or webpages that you have \n authorization to index.\n

", + "smithy.api#documentation": "

Specifies the seed or starting point URLs of the \n websites or the sitemap URLs of the websites you want to crawl.

\n

You can include website subdomains. You can list up to 100 seed \n URLs and up to three sitemap URLs.

\n

You can only crawl websites that use the secure communication protocol, \n Hypertext Transfer Protocol Secure (HTTPS). If you receive an error when \n crawling a website, it could be that the website is blocked from crawling.

\n

\n When selecting websites to index, you must adhere to \n the Amazon Acceptable Use Policy \n and all other Amazon terms. Remember that you must only use the Amazon Kendra \n web crawler to index your own webpages, or webpages that you have \n authorization to index.\n

", "smithy.api#required": {} } }, diff --git a/codegen/sdk-codegen/aws-models/kms.2014-11-01.json b/codegen/sdk-codegen/aws-models/kms.2014-11-01.json index bbf10ef837c..96064356c94 100644 --- a/codegen/sdk-codegen/aws-models/kms.2014-11-01.json +++ b/codegen/sdk-codegen/aws-models/kms.2014-11-01.json @@ -81,13 +81,13 @@ "CreationDate": { "target": "com.amazonaws.kms#DateType", "traits": { - "smithy.api#documentation": "

Date and time that the alias was most recently created in the account and Region. Formatted as Unix time.

" + "smithy.api#documentation": "

Date and time that the alias was most recently created in the account and Region.\n Formatted as Unix time.

" } }, "LastUpdatedDate": { "target": "com.amazonaws.kms#DateType", "traits": { - "smithy.api#documentation": "

Date and time that the alias was most recently associated with a KMS key in the account and Region. Formatted as Unix time.

" + "smithy.api#documentation": "

Date and time that the alias was most recently associated with a KMS key in the account\n and Region. Formatted as Unix time.

" } } }, @@ -160,7 +160,7 @@ } ], "traits": { - "smithy.api#documentation": "

Cancels the deletion of a KMS key. When this operation succeeds, the key\n state of the KMS key is Disabled. To enable the KMS key, use EnableKey.

\n

For more information about scheduling and canceling deletion of a KMS key, see Deleting KMS keys in the Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions: kms:CancelKeyDeletion (key policy)

\n

\n Related operations: ScheduleKeyDeletion\n

" + "smithy.api#documentation": "

Cancels the deletion of a KMS key. When this operation succeeds, the key state of the KMS\n key is Disabled. To enable the KMS key, use EnableKey.

\n

For more information about scheduling and canceling deletion of a KMS key, see Deleting KMS keys in the\n Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account\n use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions: kms:CancelKeyDeletion (key policy)

\n

\n Related operations: ScheduleKeyDeletion\n

" } }, "com.amazonaws.kms#CancelKeyDeletionRequest": { @@ -169,7 +169,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies the KMS key whose deletion is being canceled.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Identifies the KMS key whose deletion is being canceled.

\n \n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } } @@ -315,7 +315,7 @@ } ], "traits": { - "smithy.api#documentation": "

Connects or reconnects a custom key store to its associated CloudHSM cluster.

\n

The custom key store must be connected before you can create KMS keys\n in the key store or use the KMS keys it contains. You can disconnect and reconnect a custom key\n store at any time.

\n

To connect a custom key store, its associated CloudHSM cluster must have at least one active\n HSM. To get the number of active HSMs in a cluster, use the DescribeClusters operation. To add HSMs\n to the cluster, use the CreateHsm operation. Also, the \n kmsuser crypto\n user (CU) must not be logged into the cluster. This prevents KMS from using this\n account to log in.

\n

The connection process can take an extended amount of time to complete; up to 20 minutes.\n This operation starts the connection process, but it does not wait for it to complete. When it\n succeeds, this operation quickly returns an HTTP 200 response and a JSON object with no\n properties. However, this response does not indicate that the custom key store is connected.\n To get the connection state of the custom key store, use the DescribeCustomKeyStores operation.

\n

During the connection process, KMS finds the CloudHSM cluster that is associated with the\n custom key store, creates the connection infrastructure, connects to the cluster, logs into\n the CloudHSM client as the kmsuser CU, and rotates its password.

\n

The ConnectCustomKeyStore operation might fail for various reasons. To find\n the reason, use the DescribeCustomKeyStores operation and see the\n ConnectionErrorCode in the response. For help interpreting the\n ConnectionErrorCode, see CustomKeyStoresListEntry.

\n

To fix the failure, use the DisconnectCustomKeyStore operation to\n disconnect the custom key store, correct the error, use the UpdateCustomKeyStore operation if necessary, and then use\n ConnectCustomKeyStore again.

\n

If you are having trouble connecting or disconnecting a custom key store, see Troubleshooting a Custom Key\n Store in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:ConnectCustomKeyStore (IAM policy)

\n

\n Related operations\n

\n " + "smithy.api#documentation": "

Connects or reconnects a custom key store to its associated CloudHSM cluster.

\n

The custom key store must be connected before you can create KMS keys in the key store or\n use the KMS keys it contains. You can disconnect and reconnect a custom key store at any\n time.

\n

To connect a custom key store, its associated CloudHSM cluster must have at least one active\n HSM. To get the number of active HSMs in a cluster, use the DescribeClusters operation. To add HSMs\n to the cluster, use the CreateHsm operation. Also, the \n kmsuser crypto\n user (CU) must not be logged into the cluster. This prevents KMS from using this\n account to log in.

\n

The connection process can take an extended amount of time to complete; up to 20 minutes.\n This operation starts the connection process, but it does not wait for it to complete. When it\n succeeds, this operation quickly returns an HTTP 200 response and a JSON object with no\n properties. However, this response does not indicate that the custom key store is connected.\n To get the connection state of the custom key store, use the DescribeCustomKeyStores operation.

\n

During the connection process, KMS finds the CloudHSM cluster that is associated with the\n custom key store, creates the connection infrastructure, connects to the cluster, logs into\n the CloudHSM client as the kmsuser CU, and rotates its password.

\n

The ConnectCustomKeyStore operation might fail for various reasons. To find\n the reason, use the DescribeCustomKeyStores operation and see the\n ConnectionErrorCode in the response. For help interpreting the\n ConnectionErrorCode, see CustomKeyStoresListEntry.

\n

To fix the failure, use the DisconnectCustomKeyStore operation to\n disconnect the custom key store, correct the error, use the UpdateCustomKeyStore operation if necessary, and then use\n ConnectCustomKeyStore again.

\n

If you are having trouble connecting or disconnecting a custom key store, see Troubleshooting a Custom Key\n Store in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

\n\n

\n Required permissions: kms:ConnectCustomKeyStore (IAM policy)

\n

\n Related operations\n

\n " } }, "com.amazonaws.kms#ConnectCustomKeyStoreRequest": { @@ -433,7 +433,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a friendly name for a KMS key.

\n \n

Adding, deleting, or updating an alias can allow or deny permission to the KMS key. For details, see Using ABAC in KMS in the Key Management Service Developer Guide.

\n
\n

You can use an alias to identify a KMS key in the KMS console, in the DescribeKey operation and in cryptographic operations, such as Encrypt and\n GenerateDataKey. You can also change the KMS key that's associated with the\n alias (UpdateAlias) or delete the alias (DeleteAlias) at\n any time. These operations don't affect the underlying KMS key.

\n

You can associate the alias with any customer managed key in the same Amazon Web Services Region. Each\n alias is associated with only one KMS key at a time, but a KMS key can have multiple aliases. A valid KMS key is required. You can't create an alias without a KMS key.

\n

The alias must be unique in the account and Region, but you can have aliases with the same\n name in different Regions. For detailed information about aliases, see Using aliases in the\n Key Management Service Developer Guide.

\n

This operation does not return a response. To get the alias that you created, use the\n ListAliases operation.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on an alias in a different Amazon Web Services account.

\n \n

\n Required permissions\n

\n \n

For details, see Controlling access to aliases in the Key Management Service Developer Guide.

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Creates a friendly name for a KMS key.

\n \n

Adding, deleting, or updating an alias can allow or deny permission to the KMS key. For details, see Using ABAC in KMS in the Key Management Service Developer Guide.

\n
\n

You can use an alias to identify a KMS key in the KMS console, in the DescribeKey operation and in cryptographic operations, such as Encrypt and\n GenerateDataKey. You can also change the KMS key that's associated with\n the alias (UpdateAlias) or delete the alias (DeleteAlias)\n at any time. These operations don't affect the underlying KMS key.

\n

You can associate the alias with any customer managed key in the same Amazon Web Services Region. Each\n alias is associated with only one KMS key at a time, but a KMS key can have multiple aliases.\n A valid KMS key is required. You can't create an alias without a KMS key.

\n

The alias must be unique in the account and Region, but you can have aliases with the same\n name in different Regions. For detailed information about aliases, see Using aliases in the\n Key Management Service Developer Guide.

\n

This operation does not return a response. To get the alias that you created, use the\n ListAliases operation.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on an alias in a different Amazon Web Services account.

\n\n

\n Required permissions\n

\n \n

For details, see Controlling access to aliases in the\n Key Management Service Developer Guide.

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#CreateAliasRequest": { @@ -442,14 +442,14 @@ "AliasName": { "target": "com.amazonaws.kms#AliasNameType", "traits": { - "smithy.api#documentation": "

Specifies the alias name. This value must begin with alias/ followed by a\n name, such as alias/ExampleAlias.

\n

The AliasName value must be string of 1-256 characters. It can contain only alphanumeric characters,\n forward slashes (/), underscores (_), and dashes (-). The alias name cannot begin with alias/aws/. The alias/aws/ prefix is reserved\n for Amazon Web Services managed keys.

", + "smithy.api#documentation": "

Specifies the alias name. This value must begin with alias/ followed by a\n name, such as alias/ExampleAlias.

\n

The AliasName value must be string of 1-256 characters. It can contain only\n alphanumeric characters, forward slashes (/), underscores (_), and dashes (-). The alias name\n cannot begin with alias/aws/. The alias/aws/ prefix is reserved for\n Amazon Web Services managed\n keys.

", "smithy.api#required": {} } }, "TargetKeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Associates the alias with the specified customer managed key. The KMS key must be\n in the same Amazon Web Services Region.

\n

A valid key ID is required. If you supply a null or empty string value, this operation\n returns an error.

\n

For help finding the key ID and ARN, see Finding the Key ID and\n ARN in the \n Key Management Service Developer Guide\n .

\n \n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Associates the alias with the specified customer managed key. The KMS key must\n be in the same Amazon Web Services Region.

\n

A valid key ID is required. If you supply a null or empty string value, this operation\n returns an error.

\n

For help finding the key ID and ARN, see Finding the Key ID and\n ARN in the \n Key Management Service Developer Guide\n .

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } } @@ -496,7 +496,7 @@ "CustomKeyStoreName": { "target": "com.amazonaws.kms#CustomKeyStoreNameType", "traits": { - "smithy.api#documentation": "

Specifies a friendly name for the custom key store. The name must be unique in your Amazon Web Services account.

", + "smithy.api#documentation": "

Specifies a friendly name for the custom key store. The name must be unique in your\n Amazon Web Services account.

", "smithy.api#required": {} } }, @@ -569,7 +569,7 @@ } ], "traits": { - "smithy.api#documentation": "

Adds a grant to a KMS key.

\n

A grant is a policy instrument that allows Amazon Web Services principals to use KMS keys in cryptographic operations. It also can allow them to view a KMS key (DescribeKey) and create and manage grants. When authorizing access to a KMS key, grants are considered along with key policies and IAM policies. Grants are often used for\n temporary permissions because you can create one, use its permissions, and delete it without\n changing your key policies or IAM policies.

\n

For detailed information about grants, including grant terminology, see Using grants in the\n \n Key Management Service Developer Guide\n . For examples of working with grants in several\n programming languages, see Programming grants.

\n

The CreateGrant operation returns a GrantToken and a\n GrantId.

\n \n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key\n ARN in the value of the KeyId parameter.

\n

\n Required permissions: kms:CreateGrant (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Adds a grant to a KMS key.

\n

A grant is a policy instrument that allows Amazon Web Services principals to use\n KMS keys in cryptographic operations. It also can allow them to view a KMS key (DescribeKey) and create and manage grants. When authorizing access to a KMS key,\n grants are considered along with key policies and IAM policies. Grants are often used for\n temporary permissions because you can create one, use its permissions, and delete it without\n changing your key policies or IAM policies.

\n

For detailed information about grants, including grant terminology, see Using grants in the\n \n Key Management Service Developer Guide\n . For examples of working with grants in several\n programming languages, see Programming grants.

\n

The CreateGrant operation returns a GrantToken and a\n GrantId.

\n \n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes.\n To perform this operation on a KMS key in a different Amazon Web Services account, specify the key\n ARN in the value of the KeyId parameter.

\n

\n Required permissions: kms:CreateGrant (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#CreateGrantRequest": { @@ -578,34 +578,34 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies the KMS key for the grant. The grant gives principals permission to use this KMS key.

\n \n

Specify the key ID or key ARN of the KMS key. To specify a KMS key in a\ndifferent Amazon Web Services account, you must use the key ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Identifies the KMS key for the grant. The grant gives principals permission to use this\n KMS key.

\n

Specify the key ID or key ARN of the KMS key. To specify a KMS key in a\ndifferent Amazon Web Services account, you must use the key ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } }, "GranteePrincipal": { "target": "com.amazonaws.kms#PrincipalIdType", "traits": { - "smithy.api#documentation": "

The identity that gets the permissions specified in the grant.

\n

To specify the principal, use the Amazon Resource Name (ARN) of an Amazon Web Services principal. Valid Amazon Web Services principals include Amazon Web Services accounts (root), IAM users, IAM roles, federated\n users, and assumed role users. For examples of the ARN syntax to use for specifying a\n principal, see Amazon Web Services Identity and Access\n Management (IAM) in the Example ARNs section of the Amazon Web Services General\n Reference.

", + "smithy.api#documentation": "

The identity that gets the permissions specified in the grant.

\n

To specify the principal, use the Amazon Resource Name (ARN) of an\n Amazon Web Services principal. Valid Amazon Web Services principals include Amazon Web Services accounts (root), IAM users, IAM roles,\n federated users, and assumed role users. For examples of the ARN syntax to use for specifying\n a principal, see Amazon Web Services Identity and Access\n Management (IAM) in the Example ARNs section of the Amazon Web Services General\n Reference.

", "smithy.api#required": {} } }, "RetiringPrincipal": { "target": "com.amazonaws.kms#PrincipalIdType", "traits": { - "smithy.api#documentation": "

The principal that has permission to use the RetireGrant operation to\n retire the grant.

\n

To specify the principal, use the Amazon Resource Name (ARN) of an Amazon Web Services principal. Valid Amazon Web Services principals include Amazon Web Services accounts (root), IAM users, federated users, and\n assumed role users. For examples of the ARN syntax to use for specifying a principal, see\n Amazon Web Services Identity and Access Management (IAM) in the Example ARNs section of the\n Amazon Web Services General Reference.

\n

The grant determines the retiring principal. Other principals might have permission to\n retire the grant or revoke the grant. For details, see RevokeGrant and\n Retiring and revoking grants in the Key Management Service Developer Guide.

" + "smithy.api#documentation": "

The principal that has permission to use the RetireGrant operation to\n retire the grant.

\n

To specify the principal, use the Amazon Resource Name (ARN) of an\n Amazon Web Services principal. Valid Amazon Web Services principals include Amazon Web Services accounts (root), IAM users, federated\n users, and assumed role users. For examples of the ARN syntax to use for specifying a\n principal, see Amazon Web Services Identity and Access\n Management (IAM) in the Example ARNs section of the Amazon Web Services General\n Reference.

\n

The grant determines the retiring principal. Other principals might have permission to\n retire the grant or revoke the grant. For details, see RevokeGrant and\n Retiring and\n revoking grants in the Key Management Service Developer Guide.

" } }, "Operations": { "target": "com.amazonaws.kms#GrantOperationList", "traits": { - "smithy.api#documentation": "

A list of operations that the grant permits.

\n

The operation must be supported on the KMS key. For example, you cannot create a grant for a\n symmetric KMS key that allows the Sign operation, or a grant for an asymmetric KMS key that allows the GenerateDataKey operation. If you try, KMS returns a\n ValidationError exception. For details, see Grant operations in the\n Key Management Service Developer Guide.

", + "smithy.api#documentation": "

A list of operations that the grant permits.

\n

The operation must be supported on the KMS key. For example, you cannot create a grant for\n a symmetric KMS key that allows the Sign operation, or a grant for an\n asymmetric KMS key that allows the GenerateDataKey operation. If you try,\n KMS returns a ValidationError exception. For details, see Grant\n operations in the Key Management Service Developer Guide.

", "smithy.api#required": {} } }, "Constraints": { "target": "com.amazonaws.kms#GrantConstraints", "traits": { - "smithy.api#documentation": "

Specifies a grant constraint.

\n

KMS supports the EncryptionContextEquals and\n EncryptionContextSubset grant constraints. Each constraint value can include up\n to 8 encryption context pairs. The encryption context value in each constraint cannot exceed\n 384 characters.

\n

These grant constraints allow the permissions in the grant only when the encryption\n context in the request matches (EncryptionContextEquals) or includes\n (EncryptionContextSubset) the encryption context specified in this structure.\n For information about grant constraints, see Using grant\n constraints in the Key Management Service Developer Guide. For more information about encryption context,\n see Encryption\n Context in the \n Key Management Service Developer Guide\n .

\n

The encryption context grant constraints are supported only on operations that include an\n encryption context. You cannot use an encryption context grant constraint for cryptographic\n operations with asymmetric KMS keys or for management operations, such as DescribeKey or RetireGrant.

" + "smithy.api#documentation": "

Specifies a grant constraint.

\n

KMS supports the EncryptionContextEquals and\n EncryptionContextSubset grant constraints. Each constraint value can include up\n to 8 encryption context pairs. The encryption context value in each constraint cannot exceed\n 384 characters.

\n

These grant constraints allow the permissions in the grant only when the encryption\n context in the request matches (EncryptionContextEquals) or includes\n (EncryptionContextSubset) the encryption context specified in this structure.\n For information about grant constraints, see Using grant\n constraints in the Key Management Service Developer Guide. For more information about encryption context,\n see Encryption\n Context in the \n Key Management Service Developer Guide\n .

\n

The encryption context grant constraints are supported only on operations that include an\n encryption context. You cannot use an encryption context grant constraint for cryptographic\n operations with asymmetric KMS keys or for management operations, such as DescribeKey or RetireGrant.

" } }, "GrantTokens": { @@ -617,7 +617,7 @@ "Name": { "target": "com.amazonaws.kms#GrantNameType", "traits": { - "smithy.api#documentation": "

A friendly name for the grant. Use this value to prevent the unintended\n creation of duplicate grants when retrying this request.

\n

When this value is absent, all CreateGrant requests result in a new grant\n with a unique GrantId even if all the supplied parameters are identical. This can\n result in unintended duplicates when you retry the CreateGrant request.

\n

When this value is present, you can retry a CreateGrant request with\n identical parameters; if the grant already exists, the original GrantId is\n returned without creating a new grant. Note that the returned grant token is unique with every\n CreateGrant request, even when a duplicate GrantId is returned.\n All grant tokens for the same grant ID can be used interchangeably.

" + "smithy.api#documentation": "

A friendly name for the grant. Use this value to prevent the unintended creation of\n duplicate grants when retrying this request.

\n

When this value is absent, all CreateGrant requests result in a new grant\n with a unique GrantId even if all the supplied parameters are identical. This can\n result in unintended duplicates when you retry the CreateGrant request.

\n

When this value is present, you can retry a CreateGrant request with\n identical parameters; if the grant already exists, the original GrantId is\n returned without creating a new grant. Note that the returned grant token is unique with every\n CreateGrant request, even when a duplicate GrantId is returned.\n All grant tokens for the same grant ID can be used interchangeably.

" } } } @@ -680,7 +680,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a unique customer managed KMS key in your Amazon Web Services account and Region.

\n \n

KMS is replacing the term customer master key (CMK) with KMS key and KMS key. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.

\n
\n\n

You can use the CreateKey operation to create symmetric or asymmetric KMS keys.

\n \n

For information about symmetric and asymmetric KMS keys, see Using Symmetric and Asymmetric KMS keys in the Key Management Service Developer Guide.

\n\n\n

To create different types of KMS keys, use the following guidance:

\n\n
\n
Asymmetric KMS keys
\n
\n

To create an asymmetric KMS key, use the KeySpec parameter to specify\n the type of key material in the KMS key. Then, use the KeyUsage parameter\n to determine whether the KMS key will be used to encrypt and decrypt or sign and verify.\n You can't change these properties after the KMS key is created.

\n

\n
\n
Symmetric KMS keys
\n
\n

When creating a symmetric KMS key, you don't need to specify the\n KeySpec or KeyUsage parameters. The default value for\n KeySpec, SYMMETRIC_DEFAULT, and the default value for\n KeyUsage, ENCRYPT_DECRYPT, are the only valid values for\n symmetric KMS keys.

\n

\n
\n
Multi-Region primary keys
\n
Imported key material
\n
\n

To create a multi-Region primary key in the local Amazon Web Services Region,\n use the MultiRegion parameter with a value of True. To create\n a multi-Region replica key, that is, a KMS key with the same key ID and\n key material as a primary key, but in a different Amazon Web Services Region, use the ReplicateKey operation. To change a replica key to a primary key, and its\n primary key to a replica key, use the UpdatePrimaryRegion\n operation.

\n

This operation supports multi-Region keys, an KMS feature that lets you create multiple\n interoperable KMS keys in different Amazon Web Services Regions. Because these KMS keys have the same key ID, key\n material, and other metadata, you can use them interchangeably to encrypt data in one Amazon Web Services Region and decrypt\n it in a different Amazon Web Services Region without re-encrypting the data or making a cross-Region call. For more information about multi-Region keys, see Using multi-Region keys in the Key Management Service Developer Guide.

\n

You can create symmetric and asymmetric multi-Region keys and multi-Region keys with\n imported key material. You cannot create multi-Region keys in a custom key store.

\n

\n
\n
\n

To import your own key material, begin by creating a symmetric KMS key with no key\n material. To do this, use the Origin parameter of CreateKey\n with a value of EXTERNAL. Next, use GetParametersForImport operation to get a public key and import token, and use the public key to encrypt\n your key material. Then, use ImportKeyMaterial with your import token\n to import the key material. For step-by-step instructions, see Importing Key Material in the \n Key Management Service Developer Guide\n . You\n cannot import the key material into an asymmetric KMS key.

\n

To create a multi-Region primary key with imported key material, use the\n Origin parameter of CreateKey with a value of\n EXTERNAL and the MultiRegion parameter with a value of\n True. To create replicas of the multi-Region primary key, use the ReplicateKey operation. For more information about multi-Region keys, see Using multi-Region keys in the Key Management Service Developer Guide.

\n

\n
\n
Custom key store
\n
\n

To create a symmetric KMS key in a custom key store, use the\n CustomKeyStoreId parameter to specify the custom key store. You must also\n use the Origin parameter with a value of AWS_CLOUDHSM. The\n CloudHSM cluster that is associated with the custom key store must have at least two active\n HSMs in different Availability Zones in the Amazon Web Services Region.

\n

You cannot create an asymmetric KMS key in a custom key store. For information about\n custom key stores in KMS see Using Custom Key Stores in\n the \n Key Management Service Developer Guide\n .

\n
\n
\n

\n Cross-account use: No. You cannot use this operation to\n create a KMS key in a different Amazon Web Services account.

\n\n

\n Required permissions: kms:CreateKey (IAM policy). To use the\n Tags parameter, kms:TagResource (IAM policy). For examples and information about related\n permissions, see Allow a user to create KMS keys in the Key Management Service Developer Guide.

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Creates a unique customer managed KMS key in your Amazon Web Services account and\n Region.

\n \n

KMS is replacing the term customer master key (CMK) with KMS key and KMS key. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.

\n
\n\n

You can use the CreateKey operation to create symmetric or asymmetric KMS\n keys.

\n \n

For information about symmetric and asymmetric KMS keys, see Using Symmetric and Asymmetric KMS keys in the Key Management Service Developer Guide.

\n\n\n

To create different types of KMS keys, use the following guidance:

\n\n
\n
Asymmetric KMS keys
\n
\n

To create an asymmetric KMS key, use the KeySpec parameter to specify\n the type of key material in the KMS key. Then, use the KeyUsage parameter\n to determine whether the KMS key will be used to encrypt and decrypt or sign and verify.\n You can't change these properties after the KMS key is created.

\n

\n
\n
Symmetric KMS keys
\n
\n

When creating a symmetric KMS key, you don't need to specify the\n KeySpec or KeyUsage parameters. The default value for\n KeySpec, SYMMETRIC_DEFAULT, and the default value for\n KeyUsage, ENCRYPT_DECRYPT, are the only valid values for\n symmetric KMS keys.

\n

\n
\n
Multi-Region primary keys
\n
Imported key material
\n
\n

To create a multi-Region primary key in the local Amazon Web Services Region,\n use the MultiRegion parameter with a value of True. To create\n a multi-Region replica key, that is, a KMS key with the same key ID\n and key material as a primary key, but in a different Amazon Web Services Region, use the ReplicateKey operation. To change a replica key to a primary key, and its\n primary key to a replica key, use the UpdatePrimaryRegion\n operation.

\n

This operation supports multi-Region keys, an KMS feature that lets you create multiple\n interoperable KMS keys in different Amazon Web Services Regions. Because these KMS keys have the same key ID, key\n material, and other metadata, you can use them interchangeably to encrypt data in one Amazon Web Services Region and decrypt\n it in a different Amazon Web Services Region without re-encrypting the data or making a cross-Region call. For more information about multi-Region keys, see Using multi-Region keys in the Key Management Service Developer Guide.

\n

You can create symmetric and asymmetric multi-Region keys and multi-Region keys with\n imported key material. You cannot create multi-Region keys in a custom key store.

\n

\n
\n
\n

To import your own key material, begin by creating a symmetric KMS key with no key\n material. To do this, use the Origin parameter of CreateKey\n with a value of EXTERNAL. Next, use GetParametersForImport operation to get a public key and import token, and use the public key to encrypt\n your key material. Then, use ImportKeyMaterial with your import token\n to import the key material. For step-by-step instructions, see Importing Key Material in the \n Key Management Service Developer Guide\n . You\n cannot import the key material into an asymmetric KMS key.

\n

To create a multi-Region primary key with imported key material, use the\n Origin parameter of CreateKey with a value of\n EXTERNAL and the MultiRegion parameter with a value of\n True. To create replicas of the multi-Region primary key, use the ReplicateKey operation. For more information about multi-Region keys, see Using multi-Region keys in the Key Management Service Developer Guide.

\n

\n
\n
Custom key store
\n
\n

To create a symmetric KMS key in a custom key store, use the\n CustomKeyStoreId parameter to specify the custom key store. You must also\n use the Origin parameter with a value of AWS_CLOUDHSM. The\n CloudHSM cluster that is associated with the custom key store must have at least two active\n HSMs in different Availability Zones in the Amazon Web Services Region.

\n

You cannot create an asymmetric KMS key in a custom key store. For information about\n custom key stores in KMS see Using Custom Key Stores in\n the \n Key Management Service Developer Guide\n .

\n
\n
\n

\n Cross-account use: No. You cannot use this operation to\n create a KMS key in a different Amazon Web Services account.

\n\n

\n Required permissions: kms:CreateKey (IAM policy). To use the\n Tags parameter, kms:TagResource (IAM policy). For examples and information about related\n permissions, see Allow a user to create\n KMS keys in the Key Management Service Developer Guide.

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#CreateKeyRequest": { @@ -689,19 +689,19 @@ "Policy": { "target": "com.amazonaws.kms#PolicyType", "traits": { - "smithy.api#documentation": "

The key policy to attach to the KMS key.

\n

If you provide a key policy, it must meet the following criteria:

\n \n

If you do not provide a key policy, KMS attaches a default key policy to the KMS key. For\n more information, see Default Key Policy in the\n Key Management Service Developer Guide.

\n

The key policy size quota is 32 kilobytes (32768 bytes).

\n

For help writing and formatting a JSON policy document, see the IAM JSON Policy Reference in the \n Identity and Access Management User Guide\n .

" + "smithy.api#documentation": "

The key policy to attach to the KMS key.

\n

If you provide a key policy, it must meet the following criteria:

\n \n

If you do not provide a key policy, KMS attaches a default key policy to the KMS key.\n For more information, see Default Key Policy in the\n Key Management Service Developer Guide.

\n

The key policy size quota is 32 kilobytes (32768 bytes).

\n

For help writing and formatting a JSON policy document, see the IAM JSON Policy Reference in the \n Identity and Access Management User Guide\n .

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

A description of the KMS key.

\n

Use a description that helps you decide whether the KMS key is\n appropriate for a task. The default value is an empty string (no description).

\n

To set or change the description after the key is created, use UpdateKeyDescription.

" + "smithy.api#documentation": "

A description of the KMS key.

\n

Use a description that helps you decide whether the KMS key is appropriate for a task. The\n default value is an empty string (no description).

\n

To set or change the description after the key is created, use UpdateKeyDescription.

" } }, "KeyUsage": { "target": "com.amazonaws.kms#KeyUsageType", "traits": { - "smithy.api#documentation": "

Determines the cryptographic operations for which you can use the KMS key. The default value is\n ENCRYPT_DECRYPT. This parameter is required only for asymmetric KMS keys. You can't\n change the KeyUsage value after the KMS key is created.

\n

Select only one valid value.

\n " + "smithy.api#documentation": "

Determines the cryptographic operations for which you can use the KMS key. The default value is\n ENCRYPT_DECRYPT. This parameter is required only for asymmetric KMS keys. You\n can't change the KeyUsage value after the KMS key is created.

\n

Select only one valid value.

\n " } }, "CustomerMasterKeySpec": { @@ -710,43 +710,43 @@ "smithy.api#deprecated": { "message": "This parameter has been deprecated. Instead, use the KeySpec parameter." }, - "smithy.api#documentation": "

Instead, use the KeySpec parameter.

\n

The KeySpec and CustomerMasterKeySpec parameters work the same way. Only the names differ. We recommend that you use KeySpec parameter in your code. However, to avoid breaking changes, KMS will support both parameters.

" + "smithy.api#documentation": "

Instead, use the KeySpec parameter.

\n

The KeySpec and CustomerMasterKeySpec parameters work the same\n way. Only the names differ. We recommend that you use KeySpec parameter in your\n code. However, to avoid breaking changes, KMS will support both parameters.

" } }, "KeySpec": { "target": "com.amazonaws.kms#KeySpec", "traits": { - "smithy.api#documentation": "

Specifies the type of KMS key to create. The default value, SYMMETRIC_DEFAULT,\n creates a KMS key with a 256-bit symmetric key for encryption and decryption. For help choosing a\n key spec for your KMS key, see How to Choose Your KMS key\n Configuration in the \n Key Management Service Developer Guide\n .

\n

The KeySpec determines whether the KMS key contains a symmetric key or an\n asymmetric key pair. It also determines the encryption algorithms or signing algorithms that\n the KMS key supports. You can't change the KeySpec after the KMS key is created.\n To further restrict the algorithms that can be used with the KMS key, use a condition key in\n its key policy or IAM policy. For more information, see kms:EncryptionAlgorithm or kms:Signing Algorithm in the \n Key Management Service Developer Guide\n .

\n \n

\n Amazon Web Services services that\n are integrated with KMS use symmetric KMS keys to protect your data. These\n services do not support asymmetric KMS keys. For help determining whether a KMS key is symmetric or\n asymmetric, see Identifying Symmetric and Asymmetric KMS keys in the Key Management Service Developer\n Guide.

\n
\n

KMS supports the following key specs for KMS keys:

\n " + "smithy.api#documentation": "

Specifies the type of KMS key to create. The default value,\n SYMMETRIC_DEFAULT, creates a KMS key with a 256-bit symmetric key for encryption\n and decryption. For help choosing a key spec for your KMS key, see How to Choose Your KMS key\n Configuration in the \n Key Management Service Developer Guide\n .

\n

The KeySpec determines whether the KMS key contains a symmetric key or an\n asymmetric key pair. It also determines the encryption algorithms or signing algorithms that\n the KMS key supports. You can't change the KeySpec after the KMS key is created.\n To further restrict the algorithms that can be used with the KMS key, use a condition key in\n its key policy or IAM policy. For more information, see kms:EncryptionAlgorithm or kms:Signing Algorithm in the \n Key Management Service Developer Guide\n .

\n \n

\n Amazon Web Services services that\n are integrated with KMS use symmetric KMS keys to protect your data. These\n services do not support asymmetric KMS keys. For help determining whether a KMS key is\n symmetric or asymmetric, see Identifying Symmetric and Asymmetric\n KMS keys in the Key Management Service Developer Guide.

\n
\n

KMS supports the following key specs for KMS keys:

\n " } }, "Origin": { "target": "com.amazonaws.kms#OriginType", "traits": { - "smithy.api#documentation": "

The source of the key material for the KMS key. You cannot change the origin after you create\n the KMS key. The default is AWS_KMS, which means that KMS creates the key\n material.

\n

To create a KMS key with no key material (for imported key material), set the value to\n EXTERNAL. For more information about importing key material into KMS, see\n Importing Key\n Material in the Key Management Service Developer Guide. This value is valid only for symmetric KMS keys.

\n

To create a KMS key in an KMS custom key store and create its key material in the associated\n CloudHSM cluster, set this value to AWS_CLOUDHSM. You must also use the\n CustomKeyStoreId parameter to identify the custom key store. This value is\n valid only for symmetric KMS keys.

" + "smithy.api#documentation": "

The source of the key material for the KMS key. You cannot change the origin after you\n create the KMS key. The default is AWS_KMS, which means that KMS creates the\n key material.

\n

To create a KMS key with no key material (for imported key material), set the value to\n EXTERNAL. For more information about importing key material into KMS, see\n Importing Key\n Material in the Key Management Service Developer Guide. This value is valid only for symmetric KMS\n keys.

\n

To create a KMS key in an KMS custom key store and create its key material in the\n associated CloudHSM cluster, set this value to AWS_CLOUDHSM. You must also use the\n CustomKeyStoreId parameter to identify the custom key store. This value is\n valid only for symmetric KMS keys.

" } }, "CustomKeyStoreId": { "target": "com.amazonaws.kms#CustomKeyStoreIdType", "traits": { - "smithy.api#documentation": "

Creates the KMS key in the specified custom key store and the key material in its associated\n CloudHSM cluster. To create a KMS key in a custom key store, you must also specify the\n Origin parameter with a value of AWS_CLOUDHSM. The CloudHSM cluster\n that is associated with the custom key store must have at least two active HSMs, each in a\n different Availability Zone in the Region.

\n

This parameter is valid only for symmetric KMS keys and regional KMS keys. You cannot create an\n asymmetric KMS key or a multi-Region key in a custom key store.

\n

To find the ID of a custom key store, use the DescribeCustomKeyStores operation.

\n

The response includes the custom key store ID and the ID of the CloudHSM cluster.

\n

This operation is part of the Custom Key Store feature feature in KMS, which\ncombines the convenience and extensive integration of KMS with the isolation and control of a\nsingle-tenant key store.

" + "smithy.api#documentation": "

Creates the KMS key in the specified custom key store and the key material in its\n associated CloudHSM cluster. To create a KMS key in a custom key store, you must also specify the\n Origin parameter with a value of AWS_CLOUDHSM. The CloudHSM cluster\n that is associated with the custom key store must have at least two active HSMs, each in a\n different Availability Zone in the Region.

\n

This parameter is valid only for symmetric KMS keys and regional KMS keys. You cannot\n create an asymmetric KMS key or a multi-Region key in a custom key store.

\n

To find the ID of a custom key store, use the DescribeCustomKeyStores operation.

\n

The response includes the custom key store ID and the ID of the CloudHSM cluster.

\n

This operation is part of the Custom Key Store feature feature in KMS, which\ncombines the convenience and extensive integration of KMS with the isolation and control of a\nsingle-tenant key store.

" } }, "BypassPolicyLockoutSafetyCheck": { "target": "com.amazonaws.kms#BooleanType", "traits": { - "smithy.api#documentation": "

A flag to indicate whether to bypass the key policy lockout safety check.

\n \n

Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not\n set this value to true indiscriminately.

\n

For more information, refer to the scenario in the Default Key Policy section in the \n Key Management Service Developer Guide\n .

\n
\n

Use this parameter only when you include a policy in the request and you intend to prevent\n the principal that is making the request from making a subsequent PutKeyPolicy request on the KMS key.

\n

The default value is false.

" + "smithy.api#documentation": "

A flag to indicate whether to bypass the key policy lockout safety check.

\n \n

Setting this value to true increases the risk that the KMS key becomes unmanageable. Do\n not set this value to true indiscriminately.

\n

For more information, refer to the scenario in the Default Key Policy section in the \n Key Management Service Developer Guide\n .

\n
\n

Use this parameter only when you include a policy in the request and you intend to prevent\n the principal that is making the request from making a subsequent PutKeyPolicy request on the KMS key.

\n

The default value is false.

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

Assigns one or more tags to the KMS key. Use this parameter to tag the KMS key when it is created.\n To tag an existing KMS key, use the TagResource operation.

\n \n

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see Using ABAC in KMS in the Key Management Service Developer Guide.

\n
\n

To use this parameter, you must have kms:TagResource permission in an IAM policy.

\n

Each tag consists of a tag key and a tag value. Both the tag key and the tag value are\n required, but the tag value can be an empty (null) string. You cannot have more than one tag\n on a KMS key with the same tag key. If you specify an existing tag key with a different tag value,\n KMS replaces the current tag value with the specified one.

\n

When you add tags to an Amazon Web Services resource, Amazon Web Services generates a cost allocation\n report with usage and costs aggregated by tags. Tags can also be used to control access to a KMS key. For details,\n see Tagging Keys.

" + "smithy.api#documentation": "

Assigns one or more tags to the KMS key. Use this parameter to tag the KMS key when it is\n created. To tag an existing KMS key, use the TagResource operation.

\n \n

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see Using ABAC in KMS in the Key Management Service Developer Guide.

\n
\n

To use this parameter, you must have kms:TagResource permission in an IAM policy.

\n

Each tag consists of a tag key and a tag value. Both the tag key and the tag value are\n required, but the tag value can be an empty (null) string. You cannot have more than one tag\n on a KMS key with the same tag key. If you specify an existing tag key with a different tag\n value, KMS replaces the current tag value with the specified one.

\n

When you add tags to an Amazon Web Services resource, Amazon Web Services generates a cost allocation\n report with usage and costs aggregated by tags. Tags can also be used to control access to a KMS key. For details,\n see Tagging Keys.

" } }, "MultiRegion": { "target": "com.amazonaws.kms#NullableBooleanType", "traits": { - "smithy.api#documentation": "

Creates a multi-Region primary key that you can replicate into other Amazon Web Services Regions. You\n cannot change this value after you create the KMS key.

\n

For a multi-Region key, set this parameter to True. For a single-Region KMS key,\n omit this parameter or set it to False. The default value is\n False.

\n

This operation supports multi-Region keys, an KMS feature that lets you create multiple\n interoperable KMS keys in different Amazon Web Services Regions. Because these KMS keys have the same key ID, key\n material, and other metadata, you can use them interchangeably to encrypt data in one Amazon Web Services Region and decrypt\n it in a different Amazon Web Services Region without re-encrypting the data or making a cross-Region call. For more information about multi-Region keys, see Using multi-Region keys in the Key Management Service Developer Guide.

\n

This value creates a primary key, not a replica. To create a\n replica key, use the ReplicateKey operation.

\n

You can create a symmetric or asymmetric multi-Region key, and you can create a\n multi-Region key with imported key material. However, you cannot create a multi-Region key in\n a custom key store.

" + "smithy.api#documentation": "

Creates a multi-Region primary key that you can replicate into other Amazon Web Services Regions. You\n cannot change this value after you create the KMS key.

\n

For a multi-Region key, set this parameter to True. For a single-Region KMS\n key, omit this parameter or set it to False. The default value is\n False.

\n

This operation supports multi-Region keys, an KMS feature that lets you create multiple\n interoperable KMS keys in different Amazon Web Services Regions. Because these KMS keys have the same key ID, key\n material, and other metadata, you can use them interchangeably to encrypt data in one Amazon Web Services Region and decrypt\n it in a different Amazon Web Services Region without re-encrypting the data or making a cross-Region call. For more information about multi-Region keys, see Using multi-Region keys in the Key Management Service Developer Guide.

\n

This value creates a primary key, not a replica. To create a\n replica key, use the ReplicateKey operation.

\n

You can create a symmetric or asymmetric multi-Region key, and you can create a\n multi-Region key with imported key material. However, you cannot create a multi-Region key in\n a custom key store.

" } } } @@ -774,7 +774,7 @@ "code": "CustomKeyStoreHasCMKsException", "httpResponseCode": 400 }, - "smithy.api#documentation": "

The request was rejected because the custom key store contains KMS keys. After verifying that you do not need to use the KMS keys, use the ScheduleKeyDeletion operation to delete the KMS keys. After they are deleted, you\n can delete the custom key store.

", + "smithy.api#documentation": "

The request was rejected because the custom key store contains KMS keys. After verifying\n that you do not need to use the KMS keys, use the ScheduleKeyDeletion\n operation to delete the KMS keys. After they are deleted, you can delete the custom key\n store.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -884,7 +884,7 @@ "ConnectionState": { "target": "com.amazonaws.kms#ConnectionStateType", "traits": { - "smithy.api#documentation": "

Indicates whether the custom key store is connected to its CloudHSM cluster.

\n

You can create and use KMS keys in your custom key stores only when its connection state is\n CONNECTED.

\n

The value is DISCONNECTED if the key store has never been connected or you\n use the DisconnectCustomKeyStore operation to disconnect it. If the value is\n CONNECTED but you are having trouble using the custom key store, make sure that\n its associated CloudHSM cluster is active and contains at least one active HSM.

\n

A value of FAILED indicates that an attempt to connect was unsuccessful. The\n ConnectionErrorCode field in the response indicates the cause of the failure.\n For help resolving a connection failure, see Troubleshooting a Custom Key Store in the\n Key Management Service Developer Guide.

" + "smithy.api#documentation": "

Indicates whether the custom key store is connected to its CloudHSM cluster.

\n

You can create and use KMS keys in your custom key stores only when its connection state\n is CONNECTED.

\n

The value is DISCONNECTED if the key store has never been connected or you\n use the DisconnectCustomKeyStore operation to disconnect it. If the value is\n CONNECTED but you are having trouble using the custom key store, make sure that\n its associated CloudHSM cluster is active and contains at least one active HSM.

\n

A value of FAILED indicates that an attempt to connect was unsuccessful. The\n ConnectionErrorCode field in the response indicates the cause of the failure.\n For help resolving a connection failure, see Troubleshooting a Custom Key Store in the\n Key Management Service Developer Guide.

" } }, "ConnectionErrorCode": { @@ -1040,7 +1040,7 @@ } ], "traits": { - "smithy.api#documentation": "

Decrypts ciphertext that was encrypted by a KMS key using any of\n the following operations:

\n \n

You can use this operation to decrypt ciphertext that was encrypted under a symmetric or\n asymmetric KMS key. When the KMS key is asymmetric, you must specify the KMS key and the encryption\n algorithm that was used to encrypt the ciphertext. For information about symmetric and asymmetric KMS keys, see Using Symmetric and Asymmetric KMS keys in the Key Management Service Developer Guide.

\n

The Decrypt operation also decrypts ciphertext that was encrypted outside of KMS by the\n public key in an KMS asymmetric KMS key. However, it cannot decrypt ciphertext produced by other\n libraries, such as the Amazon Web Services Encryption\n SDK or Amazon S3 client-side encryption. These libraries return a ciphertext format that\n is incompatible with KMS.

\n

If the ciphertext was encrypted under a symmetric KMS key, the KeyId parameter is\n optional. KMS can get this information from metadata that it adds to the symmetric\n ciphertext blob. This feature adds durability to your implementation by ensuring that\n authorized users can decrypt ciphertext decades after it was encrypted, even if they've lost\n track of the key ID. However, specifying the KMS key is always recommended as a best practice.\n When you use the KeyId parameter to specify a KMS key, KMS only uses the KMS key you\n specify. If the ciphertext was encrypted under a different KMS key, the Decrypt\n operation fails. This practice ensures that you use the KMS key that you intend.

\n

Whenever possible, use key policies to give users permission to call the\n Decrypt operation on a particular KMS key, instead of using IAM policies.\n Otherwise, you might create an IAM user policy that gives the user Decrypt\n permission on all KMS keys. This user could decrypt ciphertext that was encrypted by KMS keys in other\n accounts if the key policy for the cross-account KMS key permits it. If you must use an IAM policy\n for Decrypt permissions, limit the user to particular KMS keys or particular trusted\n accounts. For details, see Best practices for IAM policies in the Key Management Service Developer Guide.

\n

Applications in Amazon Web Services Nitro Enclaves can call this operation by using the Amazon Web Services Nitro Enclaves Development Kit. For information about the supporting parameters, see How Amazon Web Services Nitro Enclaves use KMS in the Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:Decrypt (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Decrypts ciphertext that was encrypted by a KMS key using any of the following\n operations:

\n \n

You can use this operation to decrypt ciphertext that was encrypted under a symmetric or\n asymmetric KMS key. When the KMS key is asymmetric, you must specify the KMS key and the\n encryption algorithm that was used to encrypt the ciphertext. For information about symmetric and asymmetric KMS keys, see Using Symmetric and Asymmetric KMS keys in the Key Management Service Developer Guide.

\n

The Decrypt operation also decrypts ciphertext that was encrypted outside of KMS by the\n public key in an KMS asymmetric KMS key. However, it cannot decrypt ciphertext produced by\n other libraries, such as the Amazon Web Services\n Encryption SDK or Amazon S3 client-side encryption.\n These libraries return a ciphertext format that is incompatible with KMS.

\n

If the ciphertext was encrypted under a symmetric KMS key, the KeyId\n parameter is optional. KMS can get this information from metadata that it adds to the\n symmetric ciphertext blob. This feature adds durability to your implementation by ensuring\n that authorized users can decrypt ciphertext decades after it was encrypted, even if they've\n lost track of the key ID. However, specifying the KMS key is always recommended as a best\n practice. When you use the KeyId parameter to specify a KMS key, KMS only uses\n the KMS key you specify. If the ciphertext was encrypted under a different KMS key, the\n Decrypt operation fails. This practice ensures that you use the KMS key that\n you intend.

\n

Whenever possible, use key policies to give users permission to call the\n Decrypt operation on a particular KMS key, instead of using IAM policies.\n Otherwise, you might create an IAM user policy that gives the user Decrypt\n permission on all KMS keys. This user could decrypt ciphertext that was encrypted by KMS keys\n in other accounts if the key policy for the cross-account KMS key permits it. If you must use\n an IAM policy for Decrypt permissions, limit the user to particular KMS keys or\n particular trusted accounts. For details, see Best practices for IAM\n policies in the Key Management Service Developer Guide.

\n

Applications in Amazon Web Services Nitro Enclaves can call this operation by using the Amazon Web Services Nitro Enclaves Development Kit. For information about the supporting parameters, see How Amazon Web Services Nitro Enclaves use KMS in the Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account\n use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n\n

\n Required permissions: kms:Decrypt (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#DecryptRequest": { @@ -1068,13 +1068,13 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Specifies the KMS key that KMS uses to decrypt the ciphertext. Enter a\n key ID of the KMS key that was used to encrypt the ciphertext.

\n\n

This parameter is required only when the ciphertext was encrypted under an asymmetric KMS key.\n If you used a symmetric KMS key, KMS can get the KMS key from metadata that it adds to the\n symmetric ciphertext blob. However, it is always recommended as a best practice. This practice\n ensures that you use the KMS key that you intend.

\n \n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

" + "smithy.api#documentation": "

Specifies the KMS key that KMS uses to decrypt the ciphertext. Enter a key ID of the KMS\n key that was used to encrypt the ciphertext.

\n\n

This parameter is required only when the ciphertext was encrypted under an asymmetric KMS\n key. If you used a symmetric KMS key, KMS can get the KMS key from metadata that it adds to\n the symmetric ciphertext blob. However, it is always recommended as a best practice. This\n practice ensures that you use the KMS key that you intend.

\n \n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

" } }, "EncryptionAlgorithm": { "target": "com.amazonaws.kms#EncryptionAlgorithmSpec", "traits": { - "smithy.api#documentation": "

Specifies the encryption algorithm that will be used to decrypt the ciphertext. Specify\n the same algorithm that was used to encrypt the data. If you specify a different algorithm,\n the Decrypt operation fails.

\n

This parameter is required only when the ciphertext was encrypted under an asymmetric KMS key.\n The default value, SYMMETRIC_DEFAULT, represents the only supported algorithm\n that is valid for symmetric KMS keys.

" + "smithy.api#documentation": "

Specifies the encryption algorithm that will be used to decrypt the ciphertext. Specify\n the same algorithm that was used to encrypt the data. If you specify a different algorithm,\n the Decrypt operation fails.

\n

This parameter is required only when the ciphertext was encrypted under an asymmetric KMS\n key. The default value, SYMMETRIC_DEFAULT, represents the only supported\n algorithm that is valid for symmetric KMS keys.

" } } } @@ -1122,7 +1122,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the specified alias.

\n \n

Adding, deleting, or updating an alias can allow or deny permission to the KMS key. For details, see Using ABAC in KMS in the Key Management Service Developer Guide.

\n
\n

Because an alias is not a property of a KMS key, you can delete and change the aliases of a KMS key without affecting the KMS key. Also, aliases do not appear in the response from the DescribeKey operation. To get the aliases of all KMS keys, use the ListAliases operation.

\n

Each KMS key can have multiple aliases. To change the alias of a KMS key, use DeleteAlias to delete the current alias and CreateAlias to\n create a new alias. To associate an existing alias with a different KMS key,\n call UpdateAlias.

\n

\n Cross-account use: No. You cannot perform this operation on an alias in a different Amazon Web Services account.

\n

\n Required permissions\n

\n \n

For details, see Controlling access to aliases in the Key Management Service Developer Guide.

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Deletes the specified alias.

\n \n

Adding, deleting, or updating an alias can allow or deny permission to the KMS key. For details, see Using ABAC in KMS in the Key Management Service Developer Guide.

\n
\n

Because an alias is not a property of a KMS key, you can delete and change the aliases of\n a KMS key without affecting the KMS key. Also, aliases do not appear in the response from the\n DescribeKey operation. To get the aliases of all KMS keys, use the ListAliases operation.

\n

Each KMS key can have multiple aliases. To change the alias of a KMS key, use DeleteAlias to delete the current alias and CreateAlias to\n create a new alias. To associate an existing alias with a different KMS key, call UpdateAlias.

\n

\n Cross-account use: No. You cannot perform this operation on an alias in a different Amazon Web Services account.

\n

\n Required permissions\n

\n \n

For details, see Controlling access to aliases in the\n Key Management Service Developer Guide.

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#DeleteAliasRequest": { @@ -1160,7 +1160,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a custom key store. This operation does not delete the CloudHSM cluster that is\n associated with the custom key store, or affect any users or keys in the cluster.

\n

The custom key store that you delete cannot contain any KMS KMS keys. Before\n deleting the key store, verify that you will never need to use any of the KMS keys in the key\n store for any cryptographic operations. Then, use ScheduleKeyDeletion to delete the\n KMS keys from the key store. When the scheduled waiting period\n expires, the ScheduleKeyDeletion operation deletes the KMS keys. Then it makes a best\n effort to delete the key material from the associated cluster. However, you might need to\n manually delete the orphaned key\n material from the cluster and its backups.

\n

After all KMS keys are deleted from KMS, use DisconnectCustomKeyStore to\n disconnect the key store from KMS. Then, you can delete the custom key store.

\n

Instead of deleting the custom key store, consider using DisconnectCustomKeyStore to disconnect it from KMS. While the key store is\n disconnected, you cannot create or use the KMS keys in the key store. But, you do not need to\n delete KMS keys and you can reconnect a disconnected custom key store at any time.

\n

If the operation succeeds, it returns a JSON object with no\nproperties.

\n

This operation is part of the Custom Key Store feature feature in KMS, which\ncombines the convenience and extensive integration of KMS with the isolation and control of a\nsingle-tenant key store.

\n\n

\n Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:DeleteCustomKeyStore (IAM policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Deletes a custom key store. This operation does not delete the CloudHSM cluster that is\n associated with the custom key store, or affect any users or keys in the cluster.

\n

The custom key store that you delete cannot contain any KMS KMS keys. Before deleting the key store,\n verify that you will never need to use any of the KMS keys in the key store for any\n cryptographic operations. Then, use ScheduleKeyDeletion to delete the KMS keys from the\n key store. When the scheduled waiting period expires, the ScheduleKeyDeletion\n operation deletes the KMS keys. Then it makes a best effort to delete the key material from\n the associated cluster. However, you might need to manually delete the orphaned key\n material from the cluster and its backups.

\n

After all KMS keys are deleted from KMS, use DisconnectCustomKeyStore\n to disconnect the key store from KMS. Then, you can delete the custom key store.

\n

Instead of deleting the custom key store, consider using DisconnectCustomKeyStore to disconnect it from KMS. While the key store is\n disconnected, you cannot create or use the KMS keys in the key store. But, you do not need to\n delete KMS keys and you can reconnect a disconnected custom key store at any time.

\n

If the operation succeeds, it returns a JSON object with no\nproperties.

\n

This operation is part of the Custom Key Store feature feature in KMS, which\ncombines the convenience and extensive integration of KMS with the isolation and control of a\nsingle-tenant key store.

\n

\n Cross-account use: No.\n You cannot perform this operation on a custom key store in a different Amazon Web Services account.

\n\n

\n Required permissions: kms:DeleteCustomKeyStore (IAM policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#DeleteCustomKeyStoreRequest": { @@ -1205,7 +1205,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes key material that you previously imported. This operation makes the specified\n KMS key unusable. For more information about importing key material into\n KMS, see Importing Key\n Material in the Key Management Service Developer Guide.

\n

When the specified KMS key is in the PendingDeletion state, this operation does\n not change the KMS key's state. Otherwise, it changes the KMS key's state to\n PendingImport.

\n

After you delete key material, you can use ImportKeyMaterial to reimport\n the same key material into the KMS key.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:DeleteImportedKeyMaterial (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Deletes key material that you previously imported. This operation makes the specified KMS\n key unusable. For more information about importing key material into KMS, see Importing Key Material\n in the Key Management Service Developer Guide.

\n

When the specified KMS key is in the PendingDeletion state, this operation\n does not change the KMS key's state. Otherwise, it changes the KMS key's state to\n PendingImport.

\n

After you delete key material, you can use ImportKeyMaterial to reimport\n the same key material into the KMS key.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n\n

\n Required permissions: kms:DeleteImportedKeyMaterial (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#DeleteImportedKeyMaterialRequest": { @@ -1214,7 +1214,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies the KMS key from which you are deleting imported key material. The\n Origin of the KMS key must be EXTERNAL.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Identifies the KMS key from which you are deleting imported key material. The\n Origin of the KMS key must be EXTERNAL.

\n \n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } } @@ -1257,7 +1257,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets information about custom key stores in the account and Region.

\n

This operation is part of the Custom Key Store feature feature in KMS, which\ncombines the convenience and extensive integration of KMS with the isolation and control of a\nsingle-tenant key store.

\n

By default, this operation returns information about all custom key stores in the account and\n Region. To get only information about a particular custom key store, use either the\n CustomKeyStoreName or CustomKeyStoreId parameter (but not\n both).

\n

To determine whether the custom key store is connected to its CloudHSM cluster, use the\n ConnectionState element in the response. If an attempt to connect the custom\n key store failed, the ConnectionState value is FAILED and the\n ConnectionErrorCode element in the response indicates the cause of the failure.\n For help interpreting the ConnectionErrorCode, see CustomKeyStoresListEntry.

\n

Custom key stores have a DISCONNECTED connection state if the key store has\n never been connected or you use the DisconnectCustomKeyStore operation to\n disconnect it. If your custom key store state is CONNECTED but you are having\n trouble using it, make sure that its associated CloudHSM cluster is active and contains the\n minimum number of HSMs required for the operation, if any.

\n

For help repairing your custom key store, see the Troubleshooting Custom Key Stores topic in the\n Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

\n

\n Required permissions: kms:DescribeCustomKeyStores (IAM policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Gets information about custom key stores in the account and Region.

\n

This operation is part of the Custom Key Store feature feature in KMS, which\ncombines the convenience and extensive integration of KMS with the isolation and control of a\nsingle-tenant key store.

\n

By default, this operation returns information about all custom key\n stores in the account and Region. To get only information about a particular custom key store,\n use either the CustomKeyStoreName or CustomKeyStoreId parameter (but\n not both).

\n

To determine whether the custom key store is connected to its CloudHSM cluster, use the\n ConnectionState element in the response. If an attempt to connect the custom\n key store failed, the ConnectionState value is FAILED and the\n ConnectionErrorCode element in the response indicates the cause of the failure.\n For help interpreting the ConnectionErrorCode, see CustomKeyStoresListEntry.

\n

Custom key stores have a DISCONNECTED connection state if the key store has\n never been connected or you use the DisconnectCustomKeyStore operation to\n disconnect it. If your custom key store state is CONNECTED but you are having\n trouble using it, make sure that its associated CloudHSM cluster is active and contains the\n minimum number of HSMs required for the operation, if any.

\n

For help repairing your custom key store, see the Troubleshooting Custom Key Stores topic in the\n Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

\n

\n Required permissions: kms:DescribeCustomKeyStores (IAM policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#DescribeCustomKeyStoresRequest": { @@ -1335,7 +1335,7 @@ } ], "traits": { - "smithy.api#documentation": "

Provides detailed information about a KMS key. You can run\n DescribeKey on a customer managed key or an Amazon Web Services managed key.

\n

This detailed information includes the key ARN, creation date (and deletion date, if\n applicable), the key state, and the origin and expiration date (if any) of the key material.\n It includes fields, like KeySpec, that help you distinguish symmetric from\n asymmetric KMS keys. It also provides information that is particularly important to asymmetric\n keys, such as the key usage (encryption or signing) and the encryption algorithms or signing\n algorithms that the KMS key supports. For KMS keys in custom key stores, it includes information about\n the custom key store, such as the key store ID and the CloudHSM cluster ID. For multi-Region\n keys, it displays the primary key and all related replica keys.

\n

\n DescribeKey does not return the following information:

\n \n

If you call the DescribeKey operation on a predefined Amazon Web Services alias, that is, an Amazon Web Services alias with no key ID, KMS creates an Amazon Web Services managed key.\n Then, it associates the alias with the new KMS key, and returns the KeyId and\n Arn of the new KMS key in the response.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:DescribeKey (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Provides detailed information about a KMS key. You can run DescribeKey on a\n customer managed\n key or an Amazon Web Services managed key.

\n

This detailed information includes the key ARN, creation date (and deletion date, if\n applicable), the key state, and the origin and expiration date (if any) of the key material.\n It includes fields, like KeySpec, that help you distinguish symmetric from\n asymmetric KMS keys. It also provides information that is particularly important to asymmetric\n keys, such as the key usage (encryption or signing) and the encryption algorithms or signing\n algorithms that the KMS key supports. For KMS keys in custom key stores, it includes\n information about the custom key store, such as the key store ID and the CloudHSM cluster ID. For\n multi-Region keys, it displays the primary key and all related replica keys.

\n

\n DescribeKey does not return the following information:

\n \n

If you call the DescribeKey operation on a predefined Amazon Web Services\n alias, that is, an Amazon Web Services alias with no key ID, KMS creates an Amazon Web Services managed\n key. Then, it associates the alias with the new KMS key, and returns the\n KeyId and Arn of the new KMS key in the response.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n\n

\n Required permissions: kms:DescribeKey (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#DescribeKeyRequest": { @@ -1344,7 +1344,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Describes the specified KMS key.

\n

If you specify a predefined Amazon Web Services alias (an Amazon Web Services alias with no key ID), KMS associates the\n alias with an Amazon Web Services managed key and returns its KeyId and Arn in the\n response.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#documentation": "

Describes the specified KMS key.

\n

If you specify a predefined Amazon Web Services alias (an Amazon Web Services alias with no key ID), KMS associates\n the alias with an Amazon Web Services managed key and returns its\n KeyId and Arn in the response.

\n \n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "smithy.api#required": {} } }, @@ -1399,7 +1399,7 @@ } ], "traits": { - "smithy.api#documentation": "

Sets the state of a KMS key to disabled. This change temporarily\n prevents use of the KMS key for cryptographic operations.

\n

For more information about how key state affects the use of a KMS key, see Key state: Effect on your KMS key in the \n Key Management Service Developer Guide\n .

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:DisableKey (key policy)

\n

\n Related operations: EnableKey\n

" + "smithy.api#documentation": "

Sets the state of a KMS key to disabled. This change temporarily prevents use of the KMS\n key for cryptographic operations.

\n

For more information about how key state affects the use of a KMS key, see Key state: Effect on your KMS\n key in the \n Key Management Service Developer Guide\n .

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n\n

\n Required permissions: kms:DisableKey (key policy)

\n

\n Related operations: EnableKey\n

" } }, "com.amazonaws.kms#DisableKeyRequest": { @@ -1443,7 +1443,7 @@ } ], "traits": { - "smithy.api#documentation": "

Disables automatic\n rotation of the key material for the specified symmetric KMS key.

\n

You cannot enable automatic rotation of asymmetric KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:DisableKeyRotation (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Disables automatic\n rotation of the key material for the specified symmetric KMS key.

\n

You cannot enable automatic rotation of asymmetric KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account\n use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n\n

\n Required permissions: kms:DisableKeyRotation (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#DisableKeyRotationRequest": { @@ -1452,7 +1452,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies a symmetric KMS key. You cannot enable or disable automatic\n rotation of asymmetric KMS keys, KMS keys\n with imported key\n material, or KMS keys in a custom key store.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Identifies a symmetric KMS key. You cannot enable or disable automatic rotation of asymmetric\n KMS keys, KMS keys with imported key material, or KMS keys in a\n custom key store.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } } @@ -1495,7 +1495,7 @@ } ], "traits": { - "smithy.api#documentation": "

Disconnects the custom key store from its associated CloudHSM cluster. While a custom key\n store is disconnected, you can manage the custom key store and its KMS keys, but you cannot create or use KMS keys in the custom key store. You can reconnect the\n custom key store at any time.

\n \n

While a custom key store is disconnected, all attempts to create KMS keys in the custom key store or to use existing KMS keys in cryptographic operations will\n fail. This action can prevent users from storing and accessing sensitive data.

\n
\n

\n

To find the connection state of a custom key store, use the DescribeCustomKeyStores operation. To reconnect a custom key store, use the\n ConnectCustomKeyStore operation.

\n

If the operation succeeds, it returns a JSON object with no\nproperties.

\n

This operation is part of the Custom Key Store feature feature in KMS, which\ncombines the convenience and extensive integration of KMS with the isolation and control of a\nsingle-tenant key store.

\n\n

\n Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:DisconnectCustomKeyStore (IAM policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Disconnects the custom key store from its associated CloudHSM cluster. While a custom key\n store is disconnected, you can manage the custom key store and its KMS keys, but you cannot\n create or use KMS keys in the custom key store. You can reconnect the custom key store at any\n time.

\n \n

While a custom key store is disconnected, all attempts to create KMS keys in the custom key store or to use existing KMS keys in cryptographic operations will\n fail. This action can prevent users from storing and accessing sensitive data.

\n
\n

\n

To find the connection state of a custom key store, use the DescribeCustomKeyStores operation. To reconnect a custom key store, use the\n ConnectCustomKeyStore operation.

\n

If the operation succeeds, it returns a JSON object with no\nproperties.

\n

This operation is part of the Custom Key Store feature feature in KMS, which\ncombines the convenience and extensive integration of KMS with the isolation and control of a\nsingle-tenant key store.

\n\n

\n Cross-account use: No.\n You cannot perform this operation on a custom key store in a different Amazon Web Services account.

\n\n

\n Required permissions: kms:DisconnectCustomKeyStore (IAM policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#DisconnectCustomKeyStoreRequest": { @@ -1540,7 +1540,7 @@ } ], "traits": { - "smithy.api#documentation": "

Sets the key state of a KMS key to enabled. This allows you to use the KMS key for cryptographic operations.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:EnableKey (key policy)

\n

\n Related operations: DisableKey\n

" + "smithy.api#documentation": "

Sets the key state of a KMS key to enabled. This allows you to use the KMS key for\n cryptographic operations.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account\n use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n\n

\n Required permissions: kms:EnableKey (key policy)

\n

\n Related operations: DisableKey\n

" } }, "com.amazonaws.kms#EnableKeyRequest": { @@ -1584,7 +1584,7 @@ } ], "traits": { - "smithy.api#documentation": "

Enables automatic rotation\n of the key material for the specified symmetric KMS key.

\n

You cannot enable automatic rotation of asymmetric KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:EnableKeyRotation (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Enables automatic rotation\n of the key material for the specified symmetric KMS key.

\n

You cannot enable automatic rotation of asymmetric KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account\n use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n\n

\n Required permissions: kms:EnableKeyRotation (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#EnableKeyRotationRequest": { @@ -1593,7 +1593,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies a symmetric KMS key. You cannot enable automatic rotation of asymmetric KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key.

\n \n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Identifies a symmetric KMS key. You cannot enable automatic rotation of asymmetric KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } } @@ -1634,7 +1634,7 @@ } ], "traits": { - "smithy.api#documentation": "

Encrypts plaintext into ciphertext by using a KMS key. The\n Encrypt operation has two primary use cases:

\n \n\n

You don't need to use the Encrypt operation to encrypt a data key. The GenerateDataKey and GenerateDataKeyPair operations return a\n plaintext data key and an encrypted copy of that data key.

\n\n

When you encrypt data, you must specify a symmetric or asymmetric KMS key to use in the\n encryption operation. The KMS key must have a KeyUsage value of\n ENCRYPT_DECRYPT. To find the KeyUsage of a KMS key, use the DescribeKey operation.

\n\n

If you use a symmetric KMS key, you can use an encryption context to add additional security\n to your encryption operation. If you specify an EncryptionContext when encrypting\n data, you must specify the same encryption context (a case-sensitive exact match) when\n decrypting the data. Otherwise, the request to decrypt fails with an\n InvalidCiphertextException. For more information, see Encryption\n Context in the Key Management Service Developer Guide.

\n

If you specify an asymmetric KMS key, you must also specify the encryption algorithm. The\n algorithm must be compatible with the KMS key type.

\n \n

When you use an asymmetric KMS key to encrypt or reencrypt data, be sure to record the KMS key and encryption algorithm that you choose. You will be required to provide the same KMS key and encryption algorithm when you decrypt the data. If the KMS key and algorithm do not match the values used to encrypt the data, the decrypt operation fails.

\n

You are not required to supply the key ID and encryption algorithm when you decrypt with symmetric KMS keys because KMS stores this information in the ciphertext blob. KMS cannot store metadata in ciphertext generated with asymmetric keys. The standard format for asymmetric key ciphertext does not include configurable fields.

\n
\n\n\n

The maximum size of the data that you can encrypt varies with the type of KMS key and the\n encryption algorithm that you choose.

\n \n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:Encrypt (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Encrypts plaintext into ciphertext by using a KMS key. The Encrypt operation\n has two primary use cases:

\n \n\n

You don't need to use the Encrypt operation to encrypt a data key. The GenerateDataKey and GenerateDataKeyPair operations return a\n plaintext data key and an encrypted copy of that data key.

\n\n

When you encrypt data, you must specify a symmetric or asymmetric KMS key to use in the\n encryption operation. The KMS key must have a KeyUsage value of\n ENCRYPT_DECRYPT. To find the KeyUsage of a KMS key, use the DescribeKey operation.

\n\n

If you use a symmetric KMS key, you can use an encryption context to add additional\n security to your encryption operation. If you specify an EncryptionContext when\n encrypting data, you must specify the same encryption context (a case-sensitive exact match)\n when decrypting the data. Otherwise, the request to decrypt fails with an\n InvalidCiphertextException. For more information, see Encryption\n Context in the Key Management Service Developer Guide.

\n

If you specify an asymmetric KMS key, you must also specify the encryption algorithm. The\n algorithm must be compatible with the KMS key type.

\n \n

When you use an asymmetric KMS key to encrypt or reencrypt data, be sure to record the KMS key and encryption algorithm that you choose. You will be required to provide the same KMS key and encryption algorithm when you decrypt the data. If the KMS key and algorithm do not match the values used to encrypt the data, the decrypt operation fails.

\n

You are not required to supply the key ID and encryption algorithm when you decrypt with symmetric KMS keys because KMS stores this information in the ciphertext blob. KMS cannot store metadata in ciphertext generated with asymmetric keys. The standard format for asymmetric key ciphertext does not include configurable fields.

\n
\n\n\n

The maximum size of the data that you can encrypt varies with the type of KMS key and the\n encryption algorithm that you choose.

\n \n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes.\n To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n\n

\n Required permissions: kms:Encrypt (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#EncryptRequest": { @@ -1643,7 +1643,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies the KMS key to use in the encryption operation.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#documentation": "

Identifies the KMS key to use in the encryption operation.

\n \n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "smithy.api#required": {} } }, @@ -1669,7 +1669,7 @@ "EncryptionAlgorithm": { "target": "com.amazonaws.kms#EncryptionAlgorithmSpec", "traits": { - "smithy.api#documentation": "

Specifies the encryption algorithm that KMS will use to encrypt the plaintext message.\n The algorithm must be compatible with the KMS key that you specify.

\n

This parameter is required only for asymmetric KMS keys. The default value,\n SYMMETRIC_DEFAULT, is the algorithm used for symmetric KMS keys. If you are using\n an asymmetric KMS key, we recommend RSAES_OAEP_SHA_256.

" + "smithy.api#documentation": "

Specifies the encryption algorithm that KMS will use to encrypt the plaintext message.\n The algorithm must be compatible with the KMS key that you specify.

\n

This parameter is required only for asymmetric KMS keys. The default value,\n SYMMETRIC_DEFAULT, is the algorithm used for symmetric KMS keys. If you are\n using an asymmetric KMS key, we recommend RSAES_OAEP_SHA_256.

" } } } @@ -1807,7 +1807,7 @@ } ], "traits": { - "smithy.api#documentation": "

Generates a unique symmetric data key for client-side encryption. This operation returns a\n plaintext copy of the data key and a copy that is encrypted under a KMS key\n that you specify. You can use the plaintext key to encrypt your data outside of KMS and\n store the encrypted data key with the encrypted data.

\n\n

\n GenerateDataKey returns a unique data key for each request. The bytes in the\n plaintext key are not related to the caller or the KMS key.

\n\n

To generate a data key, specify the symmetric KMS key that will be used to encrypt the data\n key. You cannot use an asymmetric KMS key to generate data keys. To get the type of your KMS key, use\n the DescribeKey operation. You must also specify the length of the data key.\n Use either the KeySpec or NumberOfBytes parameters (but not both).\n For 128-bit and 256-bit data keys, use the KeySpec parameter.

\n\n

To get only an encrypted copy of the data key, use GenerateDataKeyWithoutPlaintext. To generate an asymmetric data key pair, use\n the GenerateDataKeyPair or GenerateDataKeyPairWithoutPlaintext operation. To get a cryptographically secure\n random byte string, use GenerateRandom.

\n\n

You can use the optional encryption context to add additional security to the encryption\n operation. If you specify an EncryptionContext, you must specify the same\n encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the\n Key Management Service Developer Guide.

\n

Applications in Amazon Web Services Nitro Enclaves can call this operation by using the Amazon Web Services Nitro Enclaves Development Kit. For information about the supporting parameters, see How Amazon Web Services Nitro Enclaves use KMS in the Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n How to use your data key\n

\n

We recommend that you use the following pattern to encrypt data locally in your application.\n You can write your own code or use a client-side encryption library, such as the Amazon Web Services Encryption SDK, the Amazon DynamoDB Encryption Client, or\n Amazon S3\n client-side encryption to do these tasks for you.

\n

To encrypt data outside of KMS:

\n
    \n
  1. \n

    Use the GenerateDataKey operation to get a data key.

    \n
  2. \n
  3. \n

    Use the plaintext data key (in the Plaintext field of the response) to\n encrypt your data outside of KMS. Then erase the plaintext data key from memory.

    \n
  4. \n
  5. \n

    Store the encrypted data key (in the CiphertextBlob field of the\n response) with the encrypted data.

    \n
  6. \n
\n

To decrypt data outside of KMS:

\n
    \n
  1. \n

    Use the Decrypt operation to decrypt the encrypted data key. The\n operation returns a plaintext copy of the data key.

    \n
  2. \n
  3. \n

    Use the plaintext data key to decrypt data outside of KMS, then erase the plaintext\n data key from memory.

    \n
  4. \n
\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:GenerateDataKey (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Generates a unique symmetric data key for client-side encryption. This operation returns a\n plaintext copy of the data key and a copy that is encrypted under a KMS key that you specify.\n You can use the plaintext key to encrypt your data outside of KMS and store the encrypted\n data key with the encrypted data.

\n\n

\n GenerateDataKey returns a unique data key for each request. The bytes in the\n plaintext key are not related to the caller or the KMS key.

\n\n

To generate a data key, specify the symmetric KMS key that will be used to encrypt the\n data key. You cannot use an asymmetric KMS key to generate data keys. To get the type of your\n KMS key, use the DescribeKey operation. You must also specify the length of\n the data key. Use either the KeySpec or NumberOfBytes parameters\n (but not both). For 128-bit and 256-bit data keys, use the KeySpec parameter.

\n\n

To get only an encrypted copy of the data key, use GenerateDataKeyWithoutPlaintext. To generate an asymmetric data key pair, use\n the GenerateDataKeyPair or GenerateDataKeyPairWithoutPlaintext operation. To get a cryptographically secure\n random byte string, use GenerateRandom.

\n\n

You can use the optional encryption context to add additional security to the encryption\n operation. If you specify an EncryptionContext, you must specify the same\n encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the\n Key Management Service Developer Guide.

\n

Applications in Amazon Web Services Nitro Enclaves can call this operation by using the Amazon Web Services Nitro Enclaves Development Kit. For information about the supporting parameters, see How Amazon Web Services Nitro Enclaves use KMS in the Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n How to use your data\n key\n

\n

We recommend that you use the following pattern to encrypt data locally in your\n application. You can write your own code or use a client-side encryption library, such as the\n Amazon Web Services Encryption SDK, the\n Amazon DynamoDB Encryption Client,\n or Amazon S3\n client-side encryption to do these tasks for you.

\n

To encrypt data outside of KMS:

\n
    \n
  1. \n

    Use the GenerateDataKey operation to get a data key.

    \n
  2. \n
  3. \n

    Use the plaintext data key (in the Plaintext field of the response) to\n encrypt your data outside of KMS. Then erase the plaintext data key from memory.

    \n
  4. \n
  5. \n

    Store the encrypted data key (in the CiphertextBlob field of the\n response) with the encrypted data.

    \n
  6. \n
\n

To decrypt data outside of KMS:

\n
    \n
  1. \n

    Use the Decrypt operation to decrypt the encrypted data key. The\n operation returns a plaintext copy of the data key.

    \n
  2. \n
  3. \n

    Use the plaintext data key to decrypt data outside of KMS, then erase the plaintext\n data key from memory.

    \n
  4. \n
\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n\n

\n Required permissions: kms:GenerateDataKey (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#GenerateDataKeyPair": { @@ -1848,7 +1848,7 @@ } ], "traits": { - "smithy.api#documentation": "

Generates a unique asymmetric data key pair. The GenerateDataKeyPair\n operation returns a plaintext public key, a plaintext private key, and a copy of the private\n key that is encrypted under the symmetric KMS key you specify. You can use the data key pair to\n perform asymmetric cryptography and implement digital signatures outside of KMS.

\n\n

You can use the public key that GenerateDataKeyPair returns to encrypt data\n or verify a signature outside of KMS. Then, store the encrypted private key with the data.\n When you are ready to decrypt data or sign a message, you can use the Decrypt operation to decrypt the encrypted private key.

\n\n

To generate a data key pair, you must specify a symmetric KMS key to\n encrypt the private key in a data key pair. You cannot use an asymmetric KMS key or a KMS key in a\n custom key store. To get the type and origin of your KMS key, use the DescribeKey operation.

\n

Use the KeyPairSpec parameter to choose an RSA or Elliptic Curve (ECC) data\n key pair. KMS recommends that your use ECC key pairs for signing, and use RSA key pairs\n for either encryption or signing, but not both. However, KMS cannot enforce any restrictions\n on the use of data key pairs outside of KMS.

\n \n

If you are using the data key pair to encrypt data, or for any operation where you don't\n immediately need a private key, consider using the GenerateDataKeyPairWithoutPlaintext operation.\n GenerateDataKeyPairWithoutPlaintext returns a plaintext public key and an\n encrypted private key, but omits the plaintext private key that you need only to decrypt\n ciphertext or sign a message. Later, when you need to decrypt the data or sign a message, use\n the Decrypt operation to decrypt the encrypted private key in the data key\n pair.

\n\n

\n GenerateDataKeyPair returns a unique data key pair for each request. The\n bytes in the keys are not related to the caller or the KMS key that is used to encrypt the private\n key. The public key is a DER-encoded X.509 SubjectPublicKeyInfo, as specified in RFC 5280. The\n private key is a DER-encoded PKCS8 PrivateKeyInfo, as specified in RFC\n 5958.

\n \n

You can use the optional encryption context to add additional security to the encryption\n operation. If you specify an EncryptionContext, you must specify the same\n encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the\n Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:GenerateDataKeyPair (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Generates a unique asymmetric data key pair. The GenerateDataKeyPair\n operation returns a plaintext public key, a plaintext private key, and a copy of the private\n key that is encrypted under the symmetric KMS key you specify. You can use the data key pair\n to perform asymmetric cryptography and implement digital signatures outside of KMS.

\n\n

You can use the public key that GenerateDataKeyPair returns to encrypt data\n or verify a signature outside of KMS. Then, store the encrypted private key with the data.\n When you are ready to decrypt data or sign a message, you can use the Decrypt operation to decrypt the encrypted private key.

\n\n

To generate a data key pair, you must specify a symmetric KMS key to encrypt the private\n key in a data key pair. You cannot use an asymmetric KMS key or a KMS key in a custom key\n store. To get the type and origin of your KMS key, use the DescribeKey\n operation.

\n

Use the KeyPairSpec parameter to choose an RSA or Elliptic Curve (ECC) data\n key pair. KMS recommends that your use ECC key pairs for signing, and use RSA key pairs for\n either encryption or signing, but not both. However, KMS cannot enforce any restrictions on\n the use of data key pairs outside of KMS.

\n\n

If you are using the data key pair to encrypt data, or for any operation where you don't\n immediately need a private key, consider using the GenerateDataKeyPairWithoutPlaintext operation.\n GenerateDataKeyPairWithoutPlaintext returns a plaintext public key and an\n encrypted private key, but omits the plaintext private key that you need only to decrypt\n ciphertext or sign a message. Later, when you need to decrypt the data or sign a message, use\n the Decrypt operation to decrypt the encrypted private key in the data key\n pair.

\n\n

\n GenerateDataKeyPair returns a unique data key pair for each request. The\n bytes in the keys are not related to the caller or the KMS key that is used to encrypt the\n private key. The public key is a DER-encoded X.509 SubjectPublicKeyInfo, as specified in\n RFC 5280. The private key is a\n DER-encoded PKCS8 PrivateKeyInfo, as specified in RFC 5958.

\n\n

You can use the optional encryption context to add additional security to the encryption\n operation. If you specify an EncryptionContext, you must specify the same\n encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the\n Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account\n use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n\n

\n Required permissions: kms:GenerateDataKeyPair (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#GenerateDataKeyPairRequest": { @@ -1863,7 +1863,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Specifies the symmetric KMS key that encrypts the private key in the data key pair. You cannot\n specify an asymmetric KMS key or a KMS key in a custom key store. To get the type and origin of your KMS key, use the DescribeKey operation.

\n \n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#documentation": "

Specifies the symmetric KMS key that encrypts the private key in the data key pair. You\n cannot specify an asymmetric KMS key or a KMS key in a custom key store. To get the type and\n origin of your KMS key, use the DescribeKey operation.

\n \n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "smithy.api#required": {} } }, @@ -1955,7 +1955,7 @@ } ], "traits": { - "smithy.api#documentation": "

Generates a unique asymmetric data key pair. The\n GenerateDataKeyPairWithoutPlaintext operation returns a plaintext public key\n and a copy of the private key that is encrypted under the symmetric KMS key you specify. Unlike\n GenerateDataKeyPair, this operation does not return a plaintext private\n key.

\n

You can use the public key that GenerateDataKeyPairWithoutPlaintext returns\n to encrypt data or verify a signature outside of KMS. Then, store the encrypted private key\n with the data. When you are ready to decrypt data or sign a message, you can use the Decrypt operation to decrypt the encrypted private key.

\n

To generate a data key pair, you must specify a symmetric KMS key to\n encrypt the private key in a data key pair. You cannot use an asymmetric KMS key or a KMS key in a\n custom key store. To get the type and origin of your KMS key, use the DescribeKey operation.

\n

Use the KeyPairSpec parameter to choose an RSA or Elliptic Curve (ECC) data\n key pair. KMS recommends that your use ECC key pairs for signing, and use RSA key pairs\n for either encryption or signing, but not both. However, KMS cannot enforce any restrictions\n on the use of data key pairs outside of KMS.

\n

\n GenerateDataKeyPairWithoutPlaintext returns a unique data key pair for each\n request. The bytes in the key are not related to the caller or KMS key that is used to encrypt the\n private key. The public key is a DER-encoded X.509 SubjectPublicKeyInfo, as specified in\n RFC 5280.

\n\n

You can use the optional encryption context to add additional security to the encryption\n operation. If you specify an EncryptionContext, you must specify the same\n encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the\n Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:GenerateDataKeyPairWithoutPlaintext (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Generates a unique asymmetric data key pair. The\n GenerateDataKeyPairWithoutPlaintext operation returns a plaintext public key\n and a copy of the private key that is encrypted under the symmetric KMS key you specify.\n Unlike GenerateDataKeyPair, this operation does not return a plaintext\n private key.

\n

You can use the public key that GenerateDataKeyPairWithoutPlaintext returns\n to encrypt data or verify a signature outside of KMS. Then, store the encrypted private key\n with the data. When you are ready to decrypt data or sign a message, you can use the Decrypt operation to decrypt the encrypted private key.

\n

To generate a data key pair, you must specify a symmetric KMS key to encrypt the private\n key in a data key pair. You cannot use an asymmetric KMS key or a KMS key in a custom key\n store. To get the type and origin of your KMS key, use the DescribeKey\n operation.

\n

Use the KeyPairSpec parameter to choose an RSA or Elliptic Curve (ECC) data\n key pair. KMS recommends that your use ECC key pairs for signing, and use RSA key pairs for\n either encryption or signing, but not both. However, KMS cannot enforce any restrictions on\n the use of data key pairs outside of KMS.

\n

\n GenerateDataKeyPairWithoutPlaintext returns a unique data key pair for each\n request. The bytes in the key are not related to the caller or KMS key that is used to encrypt\n the private key. The public key is a DER-encoded X.509 SubjectPublicKeyInfo, as specified in\n RFC 5280.

\n\n

You can use the optional encryption context to add additional security to the encryption\n operation. If you specify an EncryptionContext, you must specify the same\n encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the\n Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account\n use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n\n

\n Required permissions: kms:GenerateDataKeyPairWithoutPlaintext (key\n policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#GenerateDataKeyPairWithoutPlaintextRequest": { @@ -1970,7 +1970,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Specifies the KMS key that encrypts the private key in the data key pair. You must specify a\n symmetric KMS key. You cannot use an asymmetric KMS key or a KMS key in a custom key store. To get the\n type and origin of your KMS key, use the DescribeKey operation.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#documentation": "

Specifies the KMS key that encrypts the private key in the data key pair. You must specify\n a symmetric KMS key. You cannot use an asymmetric KMS key or a KMS key in a custom key store.\n To get the type and origin of your KMS key, use the DescribeKey operation.\n

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "smithy.api#required": {} } }, @@ -2112,7 +2112,7 @@ } ], "traits": { - "smithy.api#documentation": "

Generates a unique symmetric data key. This operation returns a data key that is encrypted\n under a KMS key that you specify. To request an asymmetric data key pair,\n use the GenerateDataKeyPair or GenerateDataKeyPairWithoutPlaintext operations.

\n

\n GenerateDataKeyWithoutPlaintext is identical to the GenerateDataKey operation except that returns only the encrypted copy of the\n data key. This operation is useful for systems that need to encrypt data at some point, but\n not immediately. When you need to encrypt the data, you call the Decrypt\n operation on the encrypted copy of the key.

\n

It's also useful in distributed systems with different levels of trust. For example, you\n might store encrypted data in containers. One component of your system creates new containers\n and stores an encrypted data key with each container. Then, a different component puts the\n data into the containers. That component first decrypts the data key, uses the plaintext data\n key to encrypt data, puts the encrypted data into the container, and then destroys the\n plaintext data key. In this system, the component that creates the containers never sees the\n plaintext data key.

\n

\n GenerateDataKeyWithoutPlaintext returns a unique data key for each request.\n The bytes in the keys are not related to the caller or KMS key that is used to encrypt the private\n key.

\n\n

To generate a data key, you must specify the symmetric KMS key that is\n used to encrypt the data key. You cannot use an asymmetric KMS key to generate a data key. To get\n the type of your KMS key, use the DescribeKey operation.

\n\n

If the operation succeeds, you will find the encrypted copy of the data key in the\n CiphertextBlob field.

\n\n

You can use the optional encryption context to add additional security to the encryption\n operation. If you specify an EncryptionContext, you must specify the same\n encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the\n Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:GenerateDataKeyWithoutPlaintext (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Generates a unique symmetric data key. This operation returns a data key that is encrypted\n under a KMS key that you specify. To request an asymmetric data key pair, use the GenerateDataKeyPair or GenerateDataKeyPairWithoutPlaintext\n operations.

\n

\n GenerateDataKeyWithoutPlaintext is identical to the GenerateDataKey operation except that returns only the encrypted copy of the\n data key. This operation is useful for systems that need to encrypt data at some point, but\n not immediately. When you need to encrypt the data, you call the Decrypt\n operation on the encrypted copy of the key.

\n

It's also useful in distributed systems with different levels of trust. For example, you\n might store encrypted data in containers. One component of your system creates new containers\n and stores an encrypted data key with each container. Then, a different component puts the\n data into the containers. That component first decrypts the data key, uses the plaintext data\n key to encrypt data, puts the encrypted data into the container, and then destroys the\n plaintext data key. In this system, the component that creates the containers never sees the\n plaintext data key.

\n

\n GenerateDataKeyWithoutPlaintext returns a unique data key for each request.\n The bytes in the keys are not related to the caller or KMS key that is used to encrypt the\n private key.

\n\n

To generate a data key, you must specify the symmetric KMS key that is used to encrypt the\n data key. You cannot use an asymmetric KMS key to generate a data key. To get the type of your\n KMS key, use the DescribeKey operation.

\n\n

If the operation succeeds, you will find the encrypted copy of the data key in the\n CiphertextBlob field.

\n\n

You can use the optional encryption context to add additional security to the encryption\n operation. If you specify an EncryptionContext, you must specify the same\n encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the\n Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account\n use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n\n

\n Required permissions: kms:GenerateDataKeyWithoutPlaintext (key\n policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#GenerateDataKeyWithoutPlaintextRequest": { @@ -2121,7 +2121,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

The identifier of the symmetric KMS key that encrypts the data\n key.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#documentation": "

The identifier of the symmetric KMS key that encrypts the data key.

\n \n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "smithy.api#required": {} } }, @@ -2191,7 +2191,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a random byte string that is cryptographically secure.

\n

By default, the random byte string is generated in KMS. To generate the byte string in\n the CloudHSM cluster that is associated with a custom key store, specify the custom key store\n ID.

\n

Applications in Amazon Web Services Nitro Enclaves can call this operation by using the Amazon Web Services Nitro Enclaves Development Kit. For information about the supporting parameters, see How Amazon Web Services Nitro Enclaves use KMS in the Key Management Service Developer Guide.

\n

For more information about entropy and random number generation, see Key Management Service Cryptographic Details.

\n \n

\n Required permissions: kms:GenerateRandom (IAM policy)

" + "smithy.api#documentation": "

Returns a random byte string that is cryptographically secure.

\n

By default, the random byte string is generated in KMS. To generate the byte string in\n the CloudHSM cluster that is associated with a custom key store, specify the custom key store\n ID.

\n

Applications in Amazon Web Services Nitro Enclaves can call this operation by using the Amazon Web Services Nitro Enclaves Development Kit. For information about the supporting parameters, see How Amazon Web Services Nitro Enclaves use KMS in the Key Management Service Developer Guide.

\n

For more information about entropy and random number generation, see\n Key Management Service Cryptographic Details.

\n\n

\n Required permissions: kms:GenerateRandom (IAM policy)

" } }, "com.amazonaws.kms#GenerateRandomRequest": { @@ -2248,7 +2248,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets a key policy attached to the specified KMS key.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:GetKeyPolicy (key policy)

\n

\n Related operations: PutKeyPolicy\n

" + "smithy.api#documentation": "

Gets a key policy attached to the specified KMS key.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n\n

\n Required permissions: kms:GetKeyPolicy (key policy)

\n

\n Related operations: PutKeyPolicy\n

" } }, "com.amazonaws.kms#GetKeyPolicyRequest": { @@ -2310,7 +2310,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets a Boolean value that indicates whether automatic rotation of the key material is\n enabled for the specified KMS key.

\n

You cannot enable automatic rotation of asymmetric KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key. The key rotation status for these KMS keys is always false.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n \n

\n Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key\n ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:GetKeyRotationStatus (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Gets a Boolean value that indicates whether automatic rotation of the key material is\n enabled for the specified KMS key.

\n

You cannot enable automatic rotation of asymmetric KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key. The key rotation status for these KMS keys is always\n false.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n \n

\n Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key\n ARN in the value of the KeyId parameter.

\n\n

\n Required permissions: kms:GetKeyRotationStatus (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#GetKeyRotationStatusRequest": { @@ -2319,7 +2319,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Gets the rotation status for the specified KMS key.

\n

Specify the key ID or key ARN of the KMS key. To specify a KMS key in a\ndifferent Amazon Web Services account, you must use the key ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Gets the rotation status for the specified KMS key.

\n \n

Specify the key ID or key ARN of the KMS key. To specify a KMS key in a\ndifferent Amazon Web Services account, you must use the key ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } } @@ -2365,7 +2365,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the items you need to import key material into a symmetric, customer managed\n KMS key. For more information about importing key material into KMS, see\n Importing Key\n Material in the Key Management Service Developer Guide.

\n

This operation returns a public key and an import token. Use the public key to encrypt the\n symmetric key material. Store the import token to send with a subsequent ImportKeyMaterial request.

\n

You must specify the key ID of the symmetric KMS key into which you will import key material.\n This KMS key's Origin must be EXTERNAL. You must also specify the\n wrapping algorithm and type of wrapping key (public key) that you will use to encrypt the key\n material. You cannot perform this operation on an asymmetric KMS key or on any KMS key in a different Amazon Web Services account.

\n

To import key material, you must use the public key and import token from the same\n response. These items are valid for 24 hours. The expiration date and time appear in the\n GetParametersForImport response. You cannot use an expired token in an ImportKeyMaterial request. If your key and token expire, send another\n GetParametersForImport request.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:GetParametersForImport (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Returns the items you need to import key material into a symmetric, customer managed KMS\n key. For more information about importing key material into KMS, see Importing Key Material\n in the Key Management Service Developer Guide.

\n

This operation returns a public key and an import token. Use the public key to encrypt the\n symmetric key material. Store the import token to send with a subsequent ImportKeyMaterial request.

\n

You must specify the key ID of the symmetric KMS key into which you will import key\n material. This KMS key's Origin must be EXTERNAL. You must also\n specify the wrapping algorithm and type of wrapping key (public key) that you will use to\n encrypt the key material. You cannot perform this operation on an asymmetric KMS key or on any KMS key in a different Amazon Web Services account.

\n

To import key material, you must use the public key and import token from the same\n response. These items are valid for 24 hours. The expiration date and time appear in the\n GetParametersForImport response. You cannot use an expired token in an ImportKeyMaterial request. If your key and token expire, send another\n GetParametersForImport request.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n\n

\n Required permissions: kms:GetParametersForImport (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#GetParametersForImportRequest": { @@ -2374,7 +2374,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

The identifier of the symmetric KMS key into which you will import key material. The\n Origin of the KMS key must be EXTERNAL.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

The identifier of the symmetric KMS key into which you will import key material. The\n Origin of the KMS key must be EXTERNAL.

\n \n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } }, @@ -2400,7 +2400,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the KMS key to use in a subsequent ImportKeyMaterial\n request. This is the same KMS key specified in the GetParametersForImport\n request.

" + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the KMS key to use in a subsequent ImportKeyMaterial request. This is the same KMS key specified in the GetParametersForImport\n request.

" } }, "ImportToken": { @@ -2464,7 +2464,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the public key of an asymmetric KMS key. Unlike the private key of a asymmetric KMS key,\n which never leaves KMS unencrypted, callers with kms:GetPublicKey permission\n can download the public key of an asymmetric KMS key. You can share the public key to allow others\n to encrypt messages and verify signatures outside of KMS. For information about symmetric and asymmetric KMS keys, see Using Symmetric and Asymmetric KMS keys in the Key Management Service Developer Guide.

\n

You do not need to download the public key. Instead, you can use the public key within\n KMS by calling the Encrypt, ReEncrypt, or Verify operations with the identifier of an asymmetric KMS key. When you use the\n public key within KMS, you benefit from the authentication, authorization, and logging that\n are part of every KMS operation. You also reduce of risk of encrypting data that cannot be\n decrypted. These features are not effective outside of KMS. For details, see Special\n Considerations for Downloading Public Keys.

\n

To help you use the public key safely outside of KMS, GetPublicKey returns\n important information about the public key in the response, including:

\n \n

Although KMS cannot enforce these restrictions on external operations, it is crucial\n that you use this information to prevent the public key from being used improperly. For\n example, you can prevent a public signing key from being used encrypt data, or prevent a\n public key from being used with an encryption algorithm that is not supported by KMS. You\n can also avoid errors, such as using the wrong signing algorithm in a verification\n operation.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:GetPublicKey (key policy)

\n

\n Related operations: CreateKey\n

" + "smithy.api#documentation": "

Returns the public key of an asymmetric KMS key. Unlike the private key of a asymmetric\n KMS key, which never leaves KMS unencrypted, callers with kms:GetPublicKey\n permission can download the public key of an asymmetric KMS key. You can share the public key\n to allow others to encrypt messages and verify signatures outside of KMS.\n For information about symmetric and asymmetric KMS keys, see Using Symmetric and Asymmetric KMS keys in the Key Management Service Developer Guide.

\n

You do not need to download the public key. Instead, you can use the public key within\n KMS by calling the Encrypt, ReEncrypt, or Verify operations with the identifier of an asymmetric KMS key. When you use the\n public key within KMS, you benefit from the authentication, authorization, and logging that\n are part of every KMS operation. You also reduce of risk of encrypting data that cannot be\n decrypted. These features are not effective outside of KMS. For details, see Special\n Considerations for Downloading Public Keys.

\n

To help you use the public key safely outside of KMS, GetPublicKey returns\n important information about the public key in the response, including:

\n \n

Although KMS cannot enforce these restrictions on external operations, it is crucial\n that you use this information to prevent the public key from being used improperly. For\n example, you can prevent a public signing key from being used encrypt data, or prevent a\n public key from being used with an encryption algorithm that is not supported by KMS. You\n can also avoid errors, such as using the wrong signing algorithm in a verification\n operation.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use:\n Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n\n

\n Required permissions: kms:GetPublicKey (key policy)

\n

\n Related operations: CreateKey\n

" } }, "com.amazonaws.kms#GetPublicKeyRequest": { @@ -2491,7 +2491,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the asymmetric KMS key from which the public key was downloaded.

" + "smithy.api#documentation": "

The Amazon Resource Name (key ARN) of the asymmetric KMS key from which the public key was\n downloaded.

" } }, "PublicKey": { @@ -2506,7 +2506,7 @@ "smithy.api#deprecated": { "message": "This field has been deprecated. Instead, use the KeySpec field." }, - "smithy.api#documentation": "

Instead, use the KeySpec field in the GetPublicKey response.

\n

The KeySpec and CustomerMasterKeySpec fields have the same value. We recommend that you use the KeySpec field in your code. However, to avoid breaking changes, KMS will support both fields.

" + "smithy.api#documentation": "

Instead, use the KeySpec field in the GetPublicKey\n response.

\n

The KeySpec and CustomerMasterKeySpec fields have the same\n value. We recommend that you use the KeySpec field in your code. However, to\n avoid breaking changes, KMS will support both fields.

" } }, "KeySpec": { @@ -2773,7 +2773,7 @@ } ], "traits": { - "smithy.api#documentation": "

Imports key material into an existing symmetric KMS KMS key that was\n created without key material. After you successfully import key material into a KMS key, you can\n reimport the same key material into that KMS key, but you cannot import different key\n material.

\n

You cannot perform this operation on an asymmetric KMS key or on any KMS key in a different Amazon Web Services account. For more information about creating KMS keys with no key material and\n then importing key material, see Importing Key Material in the\n Key Management Service Developer Guide.

\n

Before using this operation, call GetParametersForImport. Its response\n includes a public key and an import token. Use the public key to encrypt the key material.\n Then, submit the import token from the same GetParametersForImport\n response.

\n

When calling this operation, you must specify the following values:

\n \n

When this operation is successful, the key state of the KMS key changes from\n PendingImport to Enabled, and you can use the KMS key.

\n

If this operation fails, use the exception to help determine the problem. If the error is\n related to the key material, the import token, or wrapping key, use GetParametersForImport to get a new public key and import token for the KMS key and\n repeat the import procedure. For help, see How To Import Key\n Material in the Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:ImportKeyMaterial (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Imports key material into an existing symmetric KMS KMS key that was created without key\n material. After you successfully import key material into a KMS key, you can reimport\n the same key material into that KMS key, but you cannot import different key\n material.

\n

You cannot perform this operation on an asymmetric KMS key or on any KMS key in a different Amazon Web Services account. For more information about creating KMS keys with no key material\n and then importing key material, see Importing Key Material in the\n Key Management Service Developer Guide.

\n

Before using this operation, call GetParametersForImport. Its response\n includes a public key and an import token. Use the public key to encrypt the key material.\n Then, submit the import token from the same GetParametersForImport\n response.

\n

When calling this operation, you must specify the following values:

\n \n

When this operation is successful, the key state of the KMS key changes from\n PendingImport to Enabled, and you can use the KMS key.

\n

If this operation fails, use the exception to help determine the problem. If the error is\n related to the key material, the import token, or wrapping key, use GetParametersForImport to get a new public key and import token for the KMS key\n and repeat the import procedure. For help, see How To Import Key\n Material in the Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n\n

\n Required permissions: kms:ImportKeyMaterial (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#ImportKeyMaterialRequest": { @@ -2782,7 +2782,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

The identifier of the symmetric KMS key that receives the imported key material. The KMS key's\n Origin must be EXTERNAL. This must be the same KMS key specified in\n the KeyID parameter of the corresponding GetParametersForImport\n request.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

The identifier of the symmetric KMS key that receives the imported key material. The KMS\n key's Origin must be EXTERNAL. This must be the same KMS key\n specified in the KeyID parameter of the corresponding GetParametersForImport request.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } }, @@ -2803,7 +2803,7 @@ "ValidTo": { "target": "com.amazonaws.kms#DateType", "traits": { - "smithy.api#documentation": "

The time at which the imported key material expires. When the key material expires, KMS\n deletes the key material and the KMS key becomes unusable. You must omit this parameter when the\n ExpirationModel parameter is set to KEY_MATERIAL_DOES_NOT_EXPIRE.\n Otherwise it is required.

" + "smithy.api#documentation": "

The time at which the imported key material expires. When the key material expires, KMS\n deletes the key material and the KMS key becomes unusable. You must omit this parameter when\n the ExpirationModel parameter is set to\n KEY_MATERIAL_DOES_NOT_EXPIRE. Otherwise it is required.

" } }, "ExpirationModel": { @@ -2830,7 +2830,7 @@ "code": "IncorrectKeyException", "httpResponseCode": 400 }, - "smithy.api#documentation": "

The request was rejected because the specified KMS key cannot decrypt the data. The\n KeyId in a Decrypt request and the SourceKeyId\n in a ReEncrypt request must identify the same KMS key that was used to encrypt\n the ciphertext.

", + "smithy.api#documentation": "

The request was rejected because the specified KMS key cannot decrypt the data. The\n KeyId in a Decrypt request and the SourceKeyId\n in a ReEncrypt request must identify the same KMS key that was used to\n encrypt the ciphertext.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -2983,7 +2983,7 @@ "code": "InvalidKeyUsage", "httpResponseCode": 400 }, - "smithy.api#documentation": "

The request was rejected for one of the following reasons:

\n \n

For encrypting, decrypting, re-encrypting, and generating data keys, the\n KeyUsage must be ENCRYPT_DECRYPT. For signing and verifying, the\n KeyUsage must be SIGN_VERIFY. To find the KeyUsage of\n a KMS key, use the DescribeKey operation.

\n

To find the encryption or signing algorithms supported for a particular KMS key, use the DescribeKey operation.

", + "smithy.api#documentation": "

The request was rejected for one of the following reasons:

\n \n

For encrypting, decrypting, re-encrypting, and generating data keys, the\n KeyUsage must be ENCRYPT_DECRYPT. For signing and verifying, the\n KeyUsage must be SIGN_VERIFY. To find the KeyUsage of\n a KMS key, use the DescribeKey operation.

\n

To find the encryption or signing algorithms supported for a particular KMS key, use the\n DescribeKey operation.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -3051,7 +3051,7 @@ "code": "KMSInvalidStateException", "httpResponseCode": 409 }, - "smithy.api#documentation": "

The request was rejected because the state of the specified resource is not valid for this\n request.

\n

For more information about how key state affects the use of a KMS key, see Key state: Effect on your KMS key in the \n Key Management Service Developer Guide\n .

", + "smithy.api#documentation": "

The request was rejected because the state of the specified resource is not valid for this\n request.

\n

For more information about how key state affects the use of a KMS key, see Key state: Effect on your KMS\n key in the \n Key Management Service Developer Guide\n .

", "smithy.api#error": "client", "smithy.api#httpError": 409 } @@ -3125,7 +3125,7 @@ "Arn": { "target": "com.amazonaws.kms#ArnType", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the KMS key. For examples, see Key Management Service\n (KMS) in the Example ARNs section of the Amazon Web Services General\n Reference.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the KMS key. For examples, see Key Management Service (KMS) in the Example ARNs section of the Amazon Web Services General\n Reference.

" } }, "CreationDate": { @@ -3137,7 +3137,7 @@ "Enabled": { "target": "com.amazonaws.kms#BooleanType", "traits": { - "smithy.api#documentation": "

Specifies whether the KMS key is enabled. When KeyState is Enabled\n this value is true, otherwise it is false.

" + "smithy.api#documentation": "

Specifies whether the KMS key is enabled. When KeyState is\n Enabled this value is true, otherwise it is false.

" } }, "Description": { @@ -3155,37 +3155,37 @@ "KeyState": { "target": "com.amazonaws.kms#KeyState", "traits": { - "smithy.api#documentation": "

The current status of the KMS key.

\n

For more information about how key state affects the use of a KMS key, see Key state: Effect on your KMS key\n in the Key Management Service Developer Guide.

" + "smithy.api#documentation": "

The current status of the KMS key.

\n

For more information about how key state affects the use of a KMS key, see Key state: Effect on your KMS\n key in the Key Management Service Developer Guide.

" } }, "DeletionDate": { "target": "com.amazonaws.kms#DateType", "traits": { - "smithy.api#documentation": "

The date and time after which KMS deletes this KMS key. This value is present only when the KMS key is scheduled for deletion, that is, when its KeyState is\n PendingDeletion.

\n

When the primary key in a multi-Region key is scheduled for deletion but still has replica\n keys, its key state is PendingReplicaDeletion and the length of its waiting\n period is displayed in the PendingDeletionWindowInDays field.

" + "smithy.api#documentation": "

The date and time after which KMS deletes this KMS key. This value is present only when\n the KMS key is scheduled for deletion, that is, when its KeyState is\n PendingDeletion.

\n

When the primary key in a multi-Region key is scheduled for deletion but still has replica\n keys, its key state is PendingReplicaDeletion and the length of its waiting\n period is displayed in the PendingDeletionWindowInDays field.

" } }, "ValidTo": { "target": "com.amazonaws.kms#DateType", "traits": { - "smithy.api#documentation": "

The time at which the imported key material expires. When the key material expires, KMS\n deletes the key material and the KMS key becomes unusable. This value is present only for KMS keys\n whose Origin is EXTERNAL and whose ExpirationModel is\n KEY_MATERIAL_EXPIRES, otherwise this value is omitted.

" + "smithy.api#documentation": "

The time at which the imported key material expires. When the key material expires, KMS\n deletes the key material and the KMS key becomes unusable. This value is present only for KMS\n keys whose Origin is EXTERNAL and whose ExpirationModel\n is KEY_MATERIAL_EXPIRES, otherwise this value is omitted.

" } }, "Origin": { "target": "com.amazonaws.kms#OriginType", "traits": { - "smithy.api#documentation": "

The source of the key material for the KMS key. When this value is AWS_KMS, KMS\n created the key material. When this value is EXTERNAL, the key material was\n imported or the KMS key doesn't have any key material. When\n this value is AWS_CLOUDHSM, the key material was created in the CloudHSM cluster\n associated with a custom key store.

" + "smithy.api#documentation": "

The source of the key material for the KMS key. When this value is AWS_KMS,\n KMS created the key material. When this value is EXTERNAL, the key material was\n imported or the KMS key doesn't have any key material. When this value is\n AWS_CLOUDHSM, the key material was created in the CloudHSM cluster associated with\n a custom key store.

" } }, "CustomKeyStoreId": { "target": "com.amazonaws.kms#CustomKeyStoreIdType", "traits": { - "smithy.api#documentation": "

A unique identifier for the custom key store that contains the KMS key. This value is present\n only when the KMS key is created in a custom key store.

" + "smithy.api#documentation": "

A unique identifier for the custom key store that contains the KMS key. This value is\n present only when the KMS key is created in a custom key store.

" } }, "CloudHsmClusterId": { "target": "com.amazonaws.kms#CloudHsmClusterIdType", "traits": { - "smithy.api#documentation": "

The cluster ID of the CloudHSM cluster that contains the key material for the KMS key. When you\n create a KMS key in a custom key store, KMS creates the key material for the KMS key in the\n associated CloudHSM cluster. This value is present only when the KMS key is created in a custom key\n store.

" + "smithy.api#documentation": "

The cluster ID of the CloudHSM cluster that contains the key material for the KMS key. When\n you create a KMS key in a custom key store, KMS creates the key material for the KMS key in\n the associated CloudHSM cluster. This value is present only when the KMS key is created in a\n custom key store.

" } }, "ExpirationModel": { @@ -3197,7 +3197,7 @@ "KeyManager": { "target": "com.amazonaws.kms#KeyManagerType", "traits": { - "smithy.api#documentation": "

The manager of the KMS key. KMS keys in your Amazon Web Services account are either customer managed or Amazon Web Services managed. For more information about the difference, see KMS keys in the\n Key Management Service Developer Guide.

" + "smithy.api#documentation": "

The manager of the KMS key. KMS keys in your Amazon Web Services account are either customer managed or\n Amazon Web Services managed. For more information about the difference, see KMS keys in the Key Management Service Developer Guide.

" } }, "CustomerMasterKeySpec": { @@ -3206,7 +3206,7 @@ "smithy.api#deprecated": { "message": "This field has been deprecated. Instead, use the KeySpec field." }, - "smithy.api#documentation": "

Instead, use the KeySpec field.

\n

The KeySpec and CustomerMasterKeySpec fields have the same value. We recommend that you use the KeySpec field in your code. However, to avoid breaking changes, KMS will support both fields.

" + "smithy.api#documentation": "

Instead, use the KeySpec field.

\n

The KeySpec and CustomerMasterKeySpec fields have the same\n value. We recommend that you use the KeySpec field in your code. However, to\n avoid breaking changes, KMS will support both fields.

" } }, "KeySpec": { @@ -3224,7 +3224,7 @@ "SigningAlgorithms": { "target": "com.amazonaws.kms#SigningAlgorithmSpecList", "traits": { - "smithy.api#documentation": "

The signing algorithms that the KMS key supports. You cannot use the KMS key with other signing\n algorithms within KMS.

\n

This field appears only when the KeyUsage of the KMS key is\n SIGN_VERIFY.

" + "smithy.api#documentation": "

The signing algorithms that the KMS key supports. You cannot use the KMS key with other\n signing algorithms within KMS.

\n

This field appears only when the KeyUsage of the KMS key is\n SIGN_VERIFY.

" } }, "MultiRegion": { @@ -3236,13 +3236,13 @@ "MultiRegionConfiguration": { "target": "com.amazonaws.kms#MultiRegionConfiguration", "traits": { - "smithy.api#documentation": "

Lists the primary and replica keys in same multi-Region key. This field is present only\n when the value of the MultiRegion field is True.

\n

For more information about any listed KMS key, use the DescribeKey\n operation.

\n " + "smithy.api#documentation": "

Lists the primary and replica keys in same multi-Region key. This field is present only\n when the value of the MultiRegion field is True.

\n

For more information about any listed KMS key, use the DescribeKey\n operation.

\n " } }, "PendingDeletionWindowInDays": { "target": "com.amazonaws.kms#PendingWindowInDaysType", "traits": { - "smithy.api#documentation": "

The waiting period before the primary key in a multi-Region key is deleted. This waiting\n period begins when the last of its replica keys is deleted. This value is present only when\n the KeyState of the KMS key is PendingReplicaDeletion. That indicates\n that the KMS key is the primary key in a multi-Region key, it is scheduled for deletion, and it\n still has existing replica keys.

\n

When a single-Region KMS key or a multi-Region replica key is scheduled for deletion, its\n deletion date is displayed in the DeletionDate field. However, when the primary\n key in a multi-Region key is scheduled for deletion, its waiting period doesn't begin until\n all of its replica keys are deleted. This value displays that waiting period. When the last\n replica key in the multi-Region key is deleted, the KeyState of the scheduled\n primary key changes from PendingReplicaDeletion to PendingDeletion\n and the deletion date appears in the DeletionDate field.

" + "smithy.api#documentation": "

The waiting period before the primary key in a multi-Region key is deleted. This waiting\n period begins when the last of its replica keys is deleted. This value is present only when\n the KeyState of the KMS key is PendingReplicaDeletion. That\n indicates that the KMS key is the primary key in a multi-Region key, it is scheduled for\n deletion, and it still has existing replica keys.

\n

When a single-Region KMS key or a multi-Region replica key is scheduled for deletion, its\n deletion date is displayed in the DeletionDate field. However, when the primary\n key in a multi-Region key is scheduled for deletion, its waiting period doesn't begin until\n all of its replica keys are deleted. This value displays that waiting period. When the last\n replica key in the multi-Region key is deleted, the KeyState of the scheduled\n primary key changes from PendingReplicaDeletion to PendingDeletion\n and the deletion date appears in the DeletionDate field.

" } } }, @@ -3350,7 +3350,7 @@ "code": "KeyUnavailable", "httpResponseCode": 500 }, - "smithy.api#documentation": "

The request was rejected because the specified KMS key was not available. You can retry the\n request.

", + "smithy.api#documentation": "

The request was rejected because the specified KMS key was not available. You can retry\n the request.

", "smithy.api#error": "server", "smithy.api#httpError": 500 } @@ -3423,7 +3423,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets a list of aliases in the caller's Amazon Web Services account and region. For more information about\n aliases, see CreateAlias.

\n

By default, the ListAliases operation returns all aliases in the account and\n region. To get only the aliases associated with a particular KMS key, use\n the KeyId parameter.

\n

The ListAliases response can include aliases that you created and associated\n with your customer managed keys, and aliases that Amazon Web Services created and associated with Amazon Web Services managed keys in your account. You can recognize Amazon Web Services aliases because their names have the format\n aws/, such as aws/dynamodb.

\n

The response might also include aliases that have no TargetKeyId field. These\n are predefined aliases that Amazon Web Services has created but has not yet associated with a KMS key. Aliases\n that Amazon Web Services creates in your account, including predefined aliases, do not count against your\n KMS aliases\n quota.

\n

\n Cross-account use: No. ListAliases does not\n return aliases in other Amazon Web Services accounts.

\n \n

\n Required permissions: kms:ListAliases (IAM policy)

\n

For details, see Controlling access to aliases in the Key Management Service Developer Guide.

\n

\n Related operations:\n

\n ", + "smithy.api#documentation": "

Gets a list of aliases in the caller's Amazon Web Services account and region. For more information\n about aliases, see CreateAlias.

\n

By default, the ListAliases operation returns all aliases in the account and\n region. To get only the aliases associated with a particular KMS key, use the\n KeyId parameter.

\n

The ListAliases response can include aliases that you created and associated\n with your customer managed keys, and aliases that Amazon Web Services created and associated with Amazon Web Services\n managed keys in your account. You can recognize Amazon Web Services aliases because their names have the\n format aws/, such as aws/dynamodb.

\n

The response might also include aliases that have no TargetKeyId field. These\n are predefined aliases that Amazon Web Services has created but has not yet associated with a KMS key.\n Aliases that Amazon Web Services creates in your account, including predefined aliases, do not count against\n your KMS aliases\n quota.

\n

\n Cross-account use: No. ListAliases does not\n return aliases in other Amazon Web Services accounts.

\n \n\n

\n Required permissions: kms:ListAliases (IAM policy)

\n

For details, see Controlling access to aliases in the\n Key Management Service Developer Guide.

\n

\n Related operations:\n

\n ", "smithy.api#paginated": { "inputToken": "Marker", "outputToken": "NextMarker", @@ -3438,7 +3438,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Lists only aliases that are associated with the specified KMS key. Enter a KMS key in your Amazon Web Services account.

\n

This parameter is optional. If you omit it, ListAliases returns all aliases\n in the account and Region.

\n \n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

" + "smithy.api#documentation": "

Lists only aliases that are associated with the specified KMS key. Enter a KMS key in your\n Amazon Web Services account.

\n

This parameter is optional. If you omit it, ListAliases returns all aliases\n in the account and Region.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

" } }, "Limit": { @@ -3510,7 +3510,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets a list of all grants for the specified KMS key.

\n

You must specify the KMS key in all requests. You can filter the grant list by grant ID\n or grantee principal.

\n

For detailed information about grants, including grant terminology, see Using grants in the\n \n Key Management Service Developer Guide\n . For examples of working with grants in several\n programming languages, see Programming grants.

\n \n

The GranteePrincipal field in the ListGrants response usually contains the\n user or role designated as the grantee principal in the grant. However, when the grantee\n principal in the grant is an Amazon Web Services service, the GranteePrincipal field contains\n the service\n principal, which might represent several different grantee principals.

\n
\n

\n Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key\n ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:ListGrants (key policy)

\n

\n Related operations:\n

\n ", + "smithy.api#documentation": "

Gets a list of all grants for the specified KMS key.

\n

You must specify the KMS key in all requests. You can filter the grant list by grant ID or\n grantee principal.

\n

For detailed information about grants, including grant terminology, see Using grants in the\n \n Key Management Service Developer Guide\n . For examples of working with grants in several\n programming languages, see Programming grants.

\n \n

The GranteePrincipal field in the ListGrants response usually contains the\n user or role designated as the grantee principal in the grant. However, when the grantee\n principal in the grant is an Amazon Web Services service, the GranteePrincipal field contains\n the service\n principal, which might represent several different grantee principals.

\n
\n

\n Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key\n ARN in the value of the KeyId parameter.

\n\n

\n Required permissions: kms:ListGrants (key policy)

\n

\n Related operations:\n

\n ", "smithy.api#paginated": { "inputToken": "Marker", "outputToken": "NextMarker", @@ -3537,7 +3537,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Returns only grants for the specified KMS key. This parameter is\n required.

\n

Specify the key ID or key ARN of the KMS key. To specify a KMS key in a\ndifferent Amazon Web Services account, you must use the key ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Returns only grants for the specified KMS key. This parameter is required.

\n \n

Specify the key ID or key ARN of the KMS key. To specify a KMS key in a\ndifferent Amazon Web Services account, you must use the key ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } }, @@ -3604,7 +3604,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets the names of the key policies that are attached to a KMS key. This\n operation is designed to get policy names that you can use in a GetKeyPolicy\n operation. However, the only valid policy name is default.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:ListKeyPolicies (key policy)

\n

\n Related operations:\n

\n ", + "smithy.api#documentation": "

Gets the names of the key policies that are attached to a KMS key. This operation is\n designed to get policy names that you can use in a GetKeyPolicy operation.\n However, the only valid policy name is default.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n\n

\n Required permissions: kms:ListKeyPolicies (key policy)

\n

\n Related operations:\n

\n ", "smithy.api#paginated": { "inputToken": "Marker", "outputToken": "NextMarker", @@ -3680,7 +3680,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets a list of all KMS keys in the caller's Amazon Web Services account and\n Region.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:ListKeys (IAM policy)

\n

\n Related operations:\n

\n ", + "smithy.api#documentation": "

Gets a list of all KMS keys in the caller's Amazon Web Services account and Region.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n\n

\n Required permissions: kms:ListKeys (IAM policy)

\n

\n Related operations:\n

\n ", "smithy.api#paginated": { "inputToken": "Marker", "outputToken": "NextMarker", @@ -3752,7 +3752,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns all tags on the specified KMS key.

\n

For general information about tags, including the format and syntax, see Tagging Amazon Web Services resources in\n the Amazon Web Services General Reference. For information about using\n tags in KMS, see Tagging\n keys.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:ListResourceTags (key policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Returns all tags on the specified KMS key.

\n

For general information about tags, including the format and syntax, see Tagging Amazon Web Services resources in\n the Amazon Web Services General Reference. For information about using\n tags in KMS, see Tagging\n keys.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n\n

\n Required permissions: kms:ListResourceTags (key policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#ListResourceTagsRequest": { @@ -3828,7 +3828,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns information about all grants in the Amazon Web Services account and Region that have the specified\n retiring principal.

\n

You can specify any principal in your Amazon Web Services account. The grants that are returned include\n grants for KMS keys in your Amazon Web Services account and other Amazon Web Services accounts. You might use this operation to\n determine which grants you may retire. To retire a grant, use the RetireGrant operation.

\n

For detailed information about grants, including grant terminology, see Using grants in the\n \n Key Management Service Developer Guide\n . For examples of working with grants in several\n programming languages, see Programming grants.

\n

\n Cross-account use: You must specify a principal in your\n Amazon Web Services account. However, this operation can return grants in any Amazon Web Services account. You do not need\n kms:ListRetirableGrants permission (or any other additional permission) in any\n Amazon Web Services account other than your own.

\n \n

\n Required permissions: kms:ListRetirableGrants (IAM policy) in your Amazon Web Services account.

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Returns information about all grants in the Amazon Web Services account and Region that have the\n specified retiring principal.

\n

You can specify any principal in your Amazon Web Services account. The grants that are returned include\n grants for KMS keys in your Amazon Web Services account and other Amazon Web Services accounts. You might use this\n operation to determine which grants you may retire. To retire a grant, use the RetireGrant operation.

\n

For detailed information about grants, including grant terminology, see Using grants in the\n \n Key Management Service Developer Guide\n . For examples of working with grants in several\n programming languages, see Programming grants.

\n

\n Cross-account use: You must specify a principal in your\n Amazon Web Services account. However, this operation can return grants in any Amazon Web Services account. You do not need\n kms:ListRetirableGrants permission (or any other additional permission) in any\n Amazon Web Services account other than your own.

\n\n

\n Required permissions: kms:ListRetirableGrants (IAM policy) in your\n Amazon Web Services account.

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#ListRetirableGrantsRequest": { @@ -3849,7 +3849,7 @@ "RetiringPrincipal": { "target": "com.amazonaws.kms#PrincipalIdType", "traits": { - "smithy.api#documentation": "

The retiring principal for which to list grants. Enter a principal in your Amazon Web Services account.

\n

To specify the retiring principal, use the Amazon Resource Name (ARN) of an Amazon Web Services principal. Valid Amazon Web Services principals include Amazon Web Services accounts (root), IAM users, federated users, and\n assumed role users. For examples of the ARN syntax for specifying a principal, see Amazon Web Services Identity and Access Management (IAM) in the Example ARNs section of the\n Amazon Web Services General Reference.

", + "smithy.api#documentation": "

The retiring principal for which to list grants. Enter a principal in your\n Amazon Web Services account.

\n

To specify the retiring principal, use the Amazon Resource Name (ARN) of an\n Amazon Web Services principal. Valid Amazon Web Services principals include Amazon Web Services accounts (root), IAM users, federated\n users, and assumed role users. For examples of the ARN syntax for specifying a principal, see\n Amazon Web Services Identity and Access Management (IAM) in the Example ARNs section of the\n Amazon Web Services General Reference.

", "smithy.api#required": {} } } @@ -3903,24 +3903,24 @@ "MultiRegionKeyType": { "target": "com.amazonaws.kms#MultiRegionKeyType", "traits": { - "smithy.api#documentation": "

Indicates whether the KMS key is a PRIMARY or REPLICA key.

" + "smithy.api#documentation": "

Indicates whether the KMS key is a PRIMARY or REPLICA\n key.

" } }, "PrimaryKey": { "target": "com.amazonaws.kms#MultiRegionKey", "traits": { - "smithy.api#documentation": "

Displays the key ARN and Region of the primary key. This field includes the current KMS key if\n it is the primary key.

" + "smithy.api#documentation": "

Displays the key ARN and Region of the primary key. This field includes the current KMS\n key if it is the primary key.

" } }, "ReplicaKeys": { "target": "com.amazonaws.kms#MultiRegionKeyList", "traits": { - "smithy.api#documentation": "

displays the key ARNs and Regions of all replica keys. This field includes the current KMS key\n if it is a replica key.

" + "smithy.api#documentation": "

displays the key ARNs and Regions of all replica keys. This field includes the current KMS\n key if it is a replica key.

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

Describes the configuration of this multi-Region key. This field appears only when the KMS key\n is a primary or replica of a multi-Region key.

\n

For more information about any listed KMS key, use the DescribeKey\n operation.

" + "smithy.api#documentation": "

Describes the configuration of this multi-Region key. This field appears only when the KMS\n key is a primary or replica of a multi-Region key.

\n

For more information about any listed KMS key, use the DescribeKey\n operation.

" } }, "com.amazonaws.kms#MultiRegionKey": { @@ -4113,7 +4113,7 @@ } ], "traits": { - "smithy.api#documentation": "

Attaches a key policy to the specified KMS key.

\n

For more information about key policies, see Key Policies in the Key Management Service Developer Guide.\n For help writing and formatting a JSON policy document, see the IAM JSON Policy Reference in the \n Identity and Access Management User Guide\n . For examples of adding a key policy in multiple programming languages,\n see Setting a key policy in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:PutKeyPolicy (key policy)

\n

\n Related operations: GetKeyPolicy\n

" + "smithy.api#documentation": "

Attaches a key policy to the specified KMS key.

\n

For more information about key policies, see Key Policies in the Key Management Service Developer Guide.\n For help writing and formatting a JSON policy document, see the IAM JSON Policy Reference in the \n Identity and Access Management User Guide\n . For examples of adding a key policy in multiple programming languages,\n see Setting a key policy in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n\n

\n Required permissions: kms:PutKeyPolicy (key policy)

\n

\n Related operations: GetKeyPolicy\n

" } }, "com.amazonaws.kms#PutKeyPolicyRequest": { @@ -4136,14 +4136,14 @@ "Policy": { "target": "com.amazonaws.kms#PolicyType", "traits": { - "smithy.api#documentation": "

The key policy to attach to the KMS key.

\n

The key policy must meet the following criteria:

\n \n

The key policy cannot exceed 32 kilobytes (32768 bytes). For more information, see Resource Quotas in the\n Key Management Service Developer Guide.

", + "smithy.api#documentation": "

The key policy to attach to the KMS key.

\n

The key policy must meet the following criteria:

\n \n

The key policy cannot exceed 32 kilobytes (32768 bytes). For more information, see Resource Quotas in the\n Key Management Service Developer Guide.

", "smithy.api#required": {} } }, "BypassPolicyLockoutSafetyCheck": { "target": "com.amazonaws.kms#BooleanType", "traits": { - "smithy.api#documentation": "

A flag to indicate whether to bypass the key policy lockout safety check.

\n \n

Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not\n set this value to true indiscriminately.

\n

For more information, refer to the scenario in the Default Key Policy section in the Key Management Service Developer Guide.

\n
\n

Use this parameter only when you intend to prevent the principal that is making the\n request from making a subsequent PutKeyPolicy request on the KMS key.

\n

The default value is false.

" + "smithy.api#documentation": "

A flag to indicate whether to bypass the key policy lockout safety check.

\n \n

Setting this value to true increases the risk that the KMS key becomes unmanageable. Do\n not set this value to true indiscriminately.

\n

For more information, refer to the scenario in the Default Key Policy section in the Key Management Service Developer Guide.

\n
\n

Use this parameter only when you intend to prevent the principal that is making the\n request from making a subsequent PutKeyPolicy request on the KMS key.

\n

The default value is false.

" } } } @@ -4189,7 +4189,7 @@ } ], "traits": { - "smithy.api#documentation": "

Decrypts ciphertext and then reencrypts it entirely within KMS. You can use this\n operation to change the KMS key under which data is encrypted, such as when\n you manually rotate a KMS key or change the KMS key that protects a ciphertext. You can also\n use it to reencrypt ciphertext under the same KMS key, such as to change the encryption\n context of a ciphertext.

\n

The ReEncrypt operation can decrypt ciphertext that was encrypted by using an\n KMS KMS key in an KMS operation, such as Encrypt or GenerateDataKey. It can also decrypt ciphertext that was encrypted by using the\n public key of an asymmetric KMS key outside of KMS. However, it cannot decrypt ciphertext\n produced by other libraries, such as the Amazon Web Services Encryption SDK or Amazon S3 client-side encryption.\n These libraries return a ciphertext format that is incompatible with KMS.

\n

When you use the ReEncrypt operation, you need to provide information for the\n decrypt operation and the subsequent encrypt operation.

\n \n \n \n \n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. The source KMS key and destination KMS key can be in different Amazon Web Services accounts. Either or both KMS keys can be in a different account than\n the caller. To specify a KMS key in a different account, you must use its key ARN or alias\n ARN.

\n\n

\n Required permissions:

\n \n

To permit reencryption from or to a KMS key, include the \"kms:ReEncrypt*\"\n permission in your key policy. This permission is\n automatically included in the key policy when you use the console to create a KMS key. But you\n must include it manually when you create a KMS key programmatically or when you use the PutKeyPolicy operation to set a key policy.

\n \n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Decrypts ciphertext and then reencrypts it entirely within KMS. You can use this\n operation to change the KMS key under which data is encrypted, such as when you manually\n rotate a KMS key or change the KMS key that protects a ciphertext. You can also use\n it to reencrypt ciphertext under the same KMS key, such as to change the encryption\n context of a ciphertext.

\n

The ReEncrypt operation can decrypt ciphertext that was encrypted by using an\n KMS KMS key in an KMS operation, such as Encrypt or GenerateDataKey. It can also decrypt ciphertext that was encrypted by using the\n public key of an asymmetric KMS key\n outside of KMS. However, it cannot decrypt ciphertext produced by other libraries, such as\n the Amazon Web Services Encryption SDK or\n Amazon S3\n client-side encryption. These libraries return a ciphertext format that is\n incompatible with KMS.

\n

When you use the ReEncrypt operation, you need to provide information for the\n decrypt operation and the subsequent encrypt operation.

\n \n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes.\n The source KMS key and destination KMS key can be in different Amazon Web Services accounts. Either or both\n KMS keys can be in a different account than the caller. To specify a KMS key in a different\n account, you must use its key ARN or alias ARN.

\n\n

\n Required permissions:

\n \n

To permit reencryption from or to a KMS key, include the \"kms:ReEncrypt*\"\n permission in your key policy. This permission is\n automatically included in the key policy when you use the console to create a KMS key. But you\n must include it manually when you create a KMS key programmatically or when you use the PutKeyPolicy operation to set a key policy.

\n\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#ReEncryptRequest": { @@ -4211,32 +4211,32 @@ "SourceKeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Specifies the KMS key that\n KMS will use to decrypt the ciphertext before it is re-encrypted. Enter a key ID of the KMS key\n that was used to encrypt the ciphertext.

\n

This parameter is required only when the ciphertext was encrypted under an asymmetric KMS key.\n If you used a symmetric KMS key, KMS can get the KMS key from metadata that it adds to the\n symmetric ciphertext blob. However, it is always recommended as a best practice. This practice\n ensures that you use the KMS key that you intend.

\n \n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

" + "smithy.api#documentation": "

Specifies the KMS key that KMS will use to decrypt the ciphertext before it is\n re-encrypted. Enter a key ID of the KMS key that was used to encrypt the ciphertext.

\n

This parameter is required only when the ciphertext was encrypted under an asymmetric KMS\n key. If you used a symmetric KMS key, KMS can get the KMS key from metadata that it adds to\n the symmetric ciphertext blob. However, it is always recommended as a best practice. This\n practice ensures that you use the KMS key that you intend.

\n \n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

" } }, "DestinationKeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

A unique identifier for the KMS key that is used to reencrypt the data. Specify a symmetric or\n asymmetric KMS key with a KeyUsage value of ENCRYPT_DECRYPT. To find the\n KeyUsage value of a KMS key, use the DescribeKey\n operation.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#documentation": "

A unique identifier for the KMS key that is used to reencrypt the data. Specify a\n symmetric or asymmetric KMS key with a KeyUsage value of\n ENCRYPT_DECRYPT. To find the KeyUsage value of a KMS key, use the\n DescribeKey operation.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "smithy.api#required": {} } }, "DestinationEncryptionContext": { "target": "com.amazonaws.kms#EncryptionContextType", "traits": { - "smithy.api#documentation": "

Specifies that encryption context to use when the reencrypting the data.

\n

A destination encryption context is valid only when the destination KMS key is a symmetric KMS key. The standard ciphertext format for asymmetric KMS keys does not include fields for\n metadata.

\n

An encryption context is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric KMS key, but it is highly recommended.

\n

For more information, see\n Encryption\n Context in the Key Management Service Developer Guide.

" + "smithy.api#documentation": "

Specifies that encryption context to use when the reencrypting the data.

\n

A destination encryption context is valid only when the destination KMS key is a symmetric\n KMS key. The standard ciphertext format for asymmetric KMS keys does not include fields for\n metadata.

\n

An encryption context is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric KMS key, but it is highly recommended.

\n

For more information, see\n Encryption\n Context in the Key Management Service Developer Guide.

" } }, "SourceEncryptionAlgorithm": { "target": "com.amazonaws.kms#EncryptionAlgorithmSpec", "traits": { - "smithy.api#documentation": "

Specifies the encryption algorithm that KMS will use to decrypt the ciphertext before it\n is reencrypted. The default value, SYMMETRIC_DEFAULT, represents the algorithm\n used for symmetric KMS keys.

\n

Specify the same algorithm that was used to encrypt the ciphertext. If you specify a\n different algorithm, the decrypt attempt fails.

\n

This parameter is required only when the ciphertext was encrypted under an asymmetric KMS key.

" + "smithy.api#documentation": "

Specifies the encryption algorithm that KMS will use to decrypt the ciphertext before it\n is reencrypted. The default value, SYMMETRIC_DEFAULT, represents the algorithm\n used for symmetric KMS keys.

\n

Specify the same algorithm that was used to encrypt the ciphertext. If you specify a\n different algorithm, the decrypt attempt fails.

\n

This parameter is required only when the ciphertext was encrypted under an asymmetric KMS\n key.

" } }, "DestinationEncryptionAlgorithm": { "target": "com.amazonaws.kms#EncryptionAlgorithmSpec", "traits": { - "smithy.api#documentation": "

Specifies the encryption algorithm that KMS will use to reecrypt the data after it has\n decrypted it. The default value, SYMMETRIC_DEFAULT, represents the encryption\n algorithm used for symmetric KMS keys.

\n

This parameter is required only when the destination KMS key is an asymmetric KMS key.

" + "smithy.api#documentation": "

Specifies the encryption algorithm that KMS will use to reecrypt the data after it has\n decrypted it. The default value, SYMMETRIC_DEFAULT, represents the encryption\n algorithm used for symmetric KMS keys.

\n

This parameter is required only when the destination KMS key is an asymmetric KMS\n key.

" } }, "GrantTokens": { @@ -4333,7 +4333,7 @@ } ], "traits": { - "smithy.api#documentation": "

Replicates a multi-Region key into the specified Region. This operation creates a\n multi-Region replica key based on a multi-Region primary key in a different Region of the same\n Amazon Web Services partition. You can create multiple replicas of a primary key, but each must be in a\n different Region. To create a multi-Region primary key, use the CreateKey\n operation.

\n

This operation supports multi-Region keys, an KMS feature that lets you create multiple\n interoperable KMS keys in different Amazon Web Services Regions. Because these KMS keys have the same key ID, key\n material, and other metadata, you can use them interchangeably to encrypt data in one Amazon Web Services Region and decrypt\n it in a different Amazon Web Services Region without re-encrypting the data or making a cross-Region call. For more information about multi-Region keys, see Using multi-Region keys in the Key Management Service Developer Guide.

\n

A replica key is a fully-functional KMS key that can be used\n independently of its primary and peer replica keys. A primary key and its replica keys share\n properties that make them interoperable. They have the same key ID and key material. They also\n have the same key\n spec, key\n usage, key\n material origin, and automatic key rotation status. KMS automatically synchronizes these shared\n properties among related multi-Region keys. All other properties of a replica key can differ,\n including its key\n policy, tags, aliases, and key\n state. KMS pricing and quotas for KMS keys apply to each primary key and replica\n key.

\n

When this operation completes, the new replica key has a transient key state of\n Creating. This key state changes to Enabled (or\n PendingImport) after a few seconds when the process of creating the new replica\n key is complete. While the key state is Creating, you can manage key, but you\n cannot yet use it in cryptographic operations. If you are creating and using the replica key\n programmatically, retry on KMSInvalidStateException or call\n DescribeKey to check its KeyState value before using it. For\n details about the Creating key state, see Key state: Effect on your KMS key in the\n Key Management Service Developer Guide.

\n

The CloudTrail log of a ReplicateKey operation records a\n ReplicateKey operation in the primary key's Region and a CreateKey operation in the replica key's Region.

\n

If you replicate a multi-Region primary key with imported key material, the replica key is\n created with no key material. You must import the same key material that you imported into the\n primary key. For details, see Importing key material into multi-Region keys in the Key Management Service Developer Guide.

\n

To convert a replica key to a primary key, use the UpdatePrimaryRegion\n operation.

\n \n

\n ReplicateKey uses different default values for the KeyPolicy and\n Tags parameters than those used in the KMS console. For details, see the\n parameter descriptions.

\n
\n

\n Cross-account use: No. You cannot use this operation to\n create a replica key in a different Amazon Web Services account.

\n

\n Required permissions:

\n \n

\n Related operations\n

\n " + "smithy.api#documentation": "

Replicates a multi-Region key into the specified Region. This operation creates a\n multi-Region replica key based on a multi-Region primary key in a different Region of the same\n Amazon Web Services partition. You can create multiple replicas of a primary key, but each must be in a\n different Region. To create a multi-Region primary key, use the CreateKey\n operation.

\n

This operation supports multi-Region keys, an KMS feature that lets you create multiple\n interoperable KMS keys in different Amazon Web Services Regions. Because these KMS keys have the same key ID, key\n material, and other metadata, you can use them interchangeably to encrypt data in one Amazon Web Services Region and decrypt\n it in a different Amazon Web Services Region without re-encrypting the data or making a cross-Region call. For more information about multi-Region keys, see Using multi-Region keys in the Key Management Service Developer Guide.

\n

A replica key is a fully-functional KMS key that can be used\n independently of its primary and peer replica keys. A primary key and its replica keys share\n properties that make them interoperable. They have the same key ID and key material. They also\n have the same key\n spec, key\n usage, key\n material origin, and automatic key rotation status. KMS automatically synchronizes these shared\n properties among related multi-Region keys. All other properties of a replica key can differ,\n including its key\n policy, tags, aliases, and key\n state. KMS pricing and quotas for KMS keys apply to each primary key and replica\n key.

\n

When this operation completes, the new replica key has a transient key state of\n Creating. This key state changes to Enabled (or\n PendingImport) after a few seconds when the process of creating the new replica\n key is complete. While the key state is Creating, you can manage key, but you\n cannot yet use it in cryptographic operations. If you are creating and using the replica key\n programmatically, retry on KMSInvalidStateException or call\n DescribeKey to check its KeyState value before using it. For\n details about the Creating key state, see Key state: Effect on your KMS key in the\n Key Management Service Developer Guide.

\n

The CloudTrail log of a ReplicateKey operation records a\n ReplicateKey operation in the primary key's Region and a CreateKey operation in the replica key's Region.

\n

If you replicate a multi-Region primary key with imported key material, the replica key is\n created with no key material. You must import the same key material that you imported into the\n primary key. For details, see Importing key material into multi-Region keys in the Key Management Service Developer Guide.

\n

To convert a replica key to a primary key, use the UpdatePrimaryRegion\n operation.

\n \n

\n ReplicateKey uses different default values for the KeyPolicy\n and Tags parameters than those used in the KMS console. For details, see the\n parameter descriptions.

\n
\n

\n Cross-account use: No. You cannot use this operation to\n create a replica key in a different Amazon Web Services account.

\n

\n Required permissions:

\n \n

\n Related operations\n

\n " } }, "com.amazonaws.kms#ReplicateKeyRequest": { @@ -4342,7 +4342,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies the multi-Region primary key that is being replicated. To determine whether a KMS key is a multi-Region primary key, use the DescribeKey operation to check\n the value of the MultiRegionKeyType property.

\n \n

Specify the key ID or key ARN of a multi-Region primary key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Identifies the multi-Region primary key that is being replicated. To determine whether a\n KMS key is a multi-Region primary key, use the DescribeKey operation to\n check the value of the MultiRegionKeyType property.

\n \n

Specify the key ID or key ARN of a multi-Region primary key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } }, @@ -4356,25 +4356,25 @@ "Policy": { "target": "com.amazonaws.kms#PolicyType", "traits": { - "smithy.api#documentation": "

The key policy to attach to the KMS key. This parameter is optional. If you do not provide a key policy, KMS attaches the default key policy to the KMS key.

\n

The key policy is not a shared property of multi-Region keys. You can specify the same key\n policy or a different key policy for each key in a set of related multi-Region keys. KMS\n does not synchronize this property.

\n

If you provide a key policy, it must meet the following criteria:

\n " + "smithy.api#documentation": "

The key policy to attach to the KMS key. This parameter is optional. If you do not provide\n a key policy, KMS attaches the default key policy to the\n KMS key.

\n

The key policy is not a shared property of multi-Region keys. You can specify the same key\n policy or a different key policy for each key in a set of related multi-Region keys. KMS\n does not synchronize this property.

\n

If you provide a key policy, it must meet the following criteria:

\n " } }, "BypassPolicyLockoutSafetyCheck": { "target": "com.amazonaws.kms#BooleanType", "traits": { - "smithy.api#documentation": "

A flag to indicate whether to bypass the key policy lockout safety check.

\n \n

Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not\n set this value to true indiscriminately.

\n

For more information, refer to the scenario in the Default Key Policy section in the Key Management Service Developer Guide.

\n
\n

Use this parameter only when you intend to prevent the principal that is making the\n request from making a subsequent PutKeyPolicy request on the KMS key.

\n

The default value is false.

" + "smithy.api#documentation": "

A flag to indicate whether to bypass the key policy lockout safety check.

\n \n

Setting this value to true increases the risk that the KMS key becomes unmanageable. Do\n not set this value to true indiscriminately.

\n

For more information, refer to the scenario in the Default Key Policy section in the Key Management Service Developer Guide.

\n
\n

Use this parameter only when you intend to prevent the principal that is making the\n request from making a subsequent PutKeyPolicy request on the KMS key.

\n

The default value is false.

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

A description of the KMS key. The default value is an empty string (no description).

\n

The description is not a shared property of multi-Region keys. You can specify the same\n description or a different description for each key in a set of related multi-Region keys. KMS does not synchronize this property.

" + "smithy.api#documentation": "

A description of the KMS key. The default value is an empty string (no\n description).

\n

The description is not a shared property of multi-Region keys. You can specify the same\n description or a different description for each key in a set of related multi-Region keys.\n KMS does not synchronize this property.

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

Assigns one or more tags to the replica key. Use this parameter to tag the KMS key when it is created.\n To tag an existing KMS key, use the TagResource operation.

\n \n

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see Using ABAC in KMS in the Key Management Service Developer Guide.

\n
\n

To use this parameter, you must have kms:TagResource permission in an IAM policy.

\n

Tags are not a shared property of multi-Region keys. You can specify the same tags or\n different tags for each key in a set of related multi-Region keys. KMS does not\n synchronize this property.

\n

Each tag consists of a tag key and a tag value. Both the tag key and the tag value are\n required, but the tag value can be an empty (null) string. You cannot have more than one tag\n on a KMS key with the same tag key. If you specify an existing tag key with a different tag value,\n KMS replaces the current tag value with the specified one.

\n

When you add tags to an Amazon Web Services resource, Amazon Web Services generates a cost allocation\n report with usage and costs aggregated by tags. Tags can also be used to control access to a KMS key. For details,\n see Tagging Keys.

" + "smithy.api#documentation": "

Assigns one or more tags to the replica key. Use this parameter to tag the KMS key when it\n is created. To tag an existing KMS key, use the TagResource\n operation.

\n \n

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see Using ABAC in KMS in the Key Management Service Developer Guide.

\n
\n

To use this parameter, you must have kms:TagResource permission in an IAM policy.

\n

Tags are not a shared property of multi-Region keys. You can specify the same tags or\n different tags for each key in a set of related multi-Region keys. KMS does not synchronize\n this property.

\n

Each tag consists of a tag key and a tag value. Both the tag key and the tag value are\n required, but the tag value can be an empty (null) string. You cannot have more than one tag\n on a KMS key with the same tag key. If you specify an existing tag key with a different tag\n value, KMS replaces the current tag value with the specified one.

\n

When you add tags to an Amazon Web Services resource, Amazon Web Services generates a cost allocation\n report with usage and costs aggregated by tags. Tags can also be used to control access to a KMS key. For details,\n see Tagging Keys.

" } } } @@ -4385,7 +4385,7 @@ "ReplicaKeyMetadata": { "target": "com.amazonaws.kms#KeyMetadata", "traits": { - "smithy.api#documentation": "

Displays details about the new replica key, including its Amazon Resource Name (key\n ARN) and key state. It also includes the ARN and Amazon Web Services Region of its primary key and other\n replica keys.

" + "smithy.api#documentation": "

Displays details about the new replica key, including its Amazon Resource Name (key ARN) and\n key state. It also\n includes the ARN and Amazon Web Services Region of its primary key and other replica keys.

" } }, "ReplicaPolicy": { @@ -4431,7 +4431,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a grant. Typically, you retire a grant when you no longer need its permissions. To\n identify the grant to retire, use a grant token, or both the grant ID and a\n key identifier (key ID or key ARN) of the KMS key. The CreateGrant operation returns both values.

\n

This operation can be called by the retiring principal for a grant,\n by the grantee principal if the grant allows the RetireGrant\n operation, and by the Amazon Web Services account (root user) in which the grant is created. It can also be\n called by principals to whom permission for retiring a grant is delegated. For details, see\n Retiring and\n revoking grants in the Key Management Service Developer Guide.

\n

For detailed information about grants, including grant terminology, see Using grants in the\n \n Key Management Service Developer Guide\n . For examples of working with grants in several\n programming languages, see Programming grants.

\n

\n Cross-account use: Yes. You can retire a grant on a KMS key\n in a different Amazon Web Services account.

\n

\n Required permissions::Permission to retire a grant is\n determined primarily by the grant. For details, see Retiring and revoking grants in the Key Management Service Developer Guide.

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Deletes a grant. Typically, you retire a grant when you no longer need its permissions. To\n identify the grant to retire, use a grant token, or both the grant ID and a\n key identifier (key ID or key ARN) of the KMS key. The CreateGrant operation\n returns both values.

\n

This operation can be called by the retiring principal for a grant,\n by the grantee principal if the grant allows the RetireGrant\n operation, and by the Amazon Web Services account (root user) in which the grant is created. It can also be\n called by principals to whom permission for retiring a grant is delegated. For details, see\n Retiring and\n revoking grants in the Key Management Service Developer Guide.

\n

For detailed information about grants, including grant terminology, see Using grants in the\n \n Key Management Service Developer Guide\n . For examples of working with grants in several\n programming languages, see Programming grants.

\n

\n Cross-account use: Yes. You can retire a grant on a KMS\n key in a different Amazon Web Services account.

\n

\n Required permissions::Permission to retire a grant is\n determined primarily by the grant. For details, see Retiring and revoking grants in\n the Key Management Service Developer Guide.

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#RetireGrantRequest": { @@ -4440,7 +4440,7 @@ "GrantToken": { "target": "com.amazonaws.kms#GrantTokenType", "traits": { - "smithy.api#documentation": "

Identifies the grant to be retired. You can use a grant token to identify a new grant even\n before it has achieved eventual consistency.

\n

Only the CreateGrant operation returns a grant token. For details, see\n Grant token\n and Eventual consistency in the Key Management Service Developer Guide.

" + "smithy.api#documentation": "

Identifies the grant to be retired. You can use a grant token to identify a new grant even\n before it has achieved eventual consistency.

\n

Only the CreateGrant operation returns a grant token. For details, see\n Grant token\n and Eventual consistency in the Key Management Service Developer Guide.

" } }, "KeyId": { @@ -4452,7 +4452,7 @@ "GrantId": { "target": "com.amazonaws.kms#GrantIdType", "traits": { - "smithy.api#documentation": "

Identifies the grant to retire. To get the grant ID, use CreateGrant,\n ListGrants, or ListRetirableGrants.

\n " + "smithy.api#documentation": "

Identifies the grant to retire. To get the grant ID, use CreateGrant,\n ListGrants, or ListRetirableGrants.

\n " } } } @@ -4483,7 +4483,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the specified grant. You revoke a grant to terminate the permissions that the\n grant allows. For more\n information, see Retiring and revoking grants in\n the \n Key Management Service Developer Guide\n .

\n

When you create, retire, or revoke a grant, there might be a brief delay, usually less than five minutes, until the grant is available throughout KMS. This state is known as eventual consistency. For details, see Eventual consistency in\n the \n Key Management Service Developer Guide\n .

\n

For detailed information about grants, including grant terminology, see Using grants in the\n \n Key Management Service Developer Guide\n . For examples of working with grants in several\n programming languages, see Programming grants.

\n

\n Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key\n ARN in the value of the KeyId parameter.

\n

\n Required permissions: kms:RevokeGrant (key policy).

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Deletes the specified grant. You revoke a grant to terminate the permissions that the\n grant allows. For more information, see Retiring and revoking grants in\n the \n Key Management Service Developer Guide\n .

\n

When you create, retire, or revoke a grant, there might be a brief delay, usually less than five minutes, until the grant is available throughout KMS. This state is known as eventual consistency. For details, see Eventual consistency in\n the \n Key Management Service Developer Guide\n .

\n

For detailed information about grants, including grant terminology, see Using grants in the\n \n Key Management Service Developer Guide\n . For examples of working with grants in several\n programming languages, see Programming grants.

\n

\n Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key\n ARN in the value of the KeyId parameter.

\n

\n Required permissions: kms:RevokeGrant (key policy).

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#RevokeGrantRequest": { @@ -4492,14 +4492,14 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

A unique identifier for the KMS key associated with the grant. To get\n the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

\n \n

Specify the key ID or key ARN of the KMS key. To specify a KMS key in a\ndifferent Amazon Web Services account, you must use the key ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

A unique identifier for the KMS key associated with the grant. To get the key ID and key\n ARN for a KMS key, use ListKeys or DescribeKey.

\n \n

Specify the key ID or key ARN of the KMS key. To specify a KMS key in a\ndifferent Amazon Web Services account, you must use the key ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } }, "GrantId": { "target": "com.amazonaws.kms#GrantIdType", "traits": { - "smithy.api#documentation": "

Identifies the grant to revoke. To get the grant ID, use CreateGrant,\n ListGrants, or ListRetirableGrants.

", + "smithy.api#documentation": "

Identifies the grant to revoke. To get the grant ID, use CreateGrant,\n ListGrants, or ListRetirableGrants.

", "smithy.api#required": {} } } @@ -4531,7 +4531,7 @@ } ], "traits": { - "smithy.api#documentation": "

Schedules the deletion of a KMS key. By default, KMS applies a waiting\n period of 30 days, but you can specify a waiting period of 7-30 days. When this operation is\n successful, the key state of the KMS key changes to PendingDeletion and the key can't\n be used in any cryptographic operations. It remains in this state for the duration of the\n waiting period. Before the waiting period ends, you can use CancelKeyDeletion to cancel the deletion of the KMS key. After the waiting period ends, KMS deletes the KMS key,\n its key material, and all KMS data associated with it, including all aliases that refer to\n it.

\n \n

Deleting a KMS key is a destructive and potentially dangerous operation. When a KMS key is\n deleted, all data that was encrypted under the KMS key is unrecoverable. (The only exception is\n a multi-Region replica key.) To prevent the use of a KMS key without deleting it, use DisableKey.

\n
\n

If you schedule deletion of a KMS key from a custom key store, when the waiting period\n expires, ScheduleKeyDeletion deletes the KMS key from KMS. Then KMS makes a best\n effort to delete the key material from the associated CloudHSM cluster. However, you might need\n to manually delete the orphaned key\n material from the cluster and its backups.

\n

You can schedule the deletion of a multi-Region primary key and its replica keys at any\n time. However, KMS will not delete a multi-Region primary key with existing replica keys. If\n you schedule the deletion of a primary key with replicas, its key state changes to\n PendingReplicaDeletion and it cannot be replicated or used in cryptographic\n operations. This status can continue indefinitely. When the last of its replicas keys is\n deleted (not just scheduled), the key state of the primary key changes to\n PendingDeletion and its waiting period (PendingWindowInDays)\n begins. For details, see Deleting multi-Region keys in the Key Management Service Developer Guide.

\n

For more information about scheduling a KMS key for deletion, see Deleting KMS keys in the\n Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n \n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n \n

\n Required permissions: kms:ScheduleKeyDeletion (key policy)

\n

\n Related operations\n

\n " + "smithy.api#documentation": "

Schedules the deletion of a KMS key. By default, KMS applies a waiting period of 30\n days, but you can specify a waiting period of 7-30 days. When this operation is successful,\n the key state of the KMS key changes to PendingDeletion and the key can't be used\n in any cryptographic operations. It remains in this state for the duration of the waiting\n period. Before the waiting period ends, you can use CancelKeyDeletion to\n cancel the deletion of the KMS key. After the waiting period ends, KMS deletes the KMS key,\n its key material, and all KMS data associated with it, including all aliases that refer to\n it.

\n \n

Deleting a KMS key is a destructive and potentially dangerous operation. When a KMS key\n is deleted, all data that was encrypted under the KMS key is unrecoverable. (The only\n exception is a multi-Region replica key.) To prevent the use of a KMS key without deleting\n it, use DisableKey.

\n
\n

If you schedule deletion of a KMS key from a custom key store, when the waiting period\n expires, ScheduleKeyDeletion deletes the KMS key from KMS. Then KMS makes a\n best effort to delete the key material from the associated CloudHSM cluster. However, you might\n need to manually delete the orphaned key\n material from the cluster and its backups.

\n

You can schedule the deletion of a multi-Region primary key and its replica keys at any\n time. However, KMS will not delete a multi-Region primary key with existing replica keys. If\n you schedule the deletion of a primary key with replicas, its key state changes to\n PendingReplicaDeletion and it cannot be replicated or used in cryptographic\n operations. This status can continue indefinitely. When the last of its replicas keys is\n deleted (not just scheduled), the key state of the primary key changes to\n PendingDeletion and its waiting period (PendingWindowInDays)\n begins. For details, see Deleting multi-Region keys in the\n Key Management Service Developer Guide.

\n

For more information about scheduling a KMS key for deletion, see Deleting KMS keys in the\n Key Management Service Developer Guide.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account\n use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n\n\n

\n Required permissions: kms:ScheduleKeyDeletion (key\n policy)

\n

\n Related operations\n

\n " } }, "com.amazonaws.kms#ScheduleKeyDeletionRequest": { @@ -4540,14 +4540,14 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

The unique identifier of the KMS key to delete.

\n \n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

The unique identifier of the KMS key to delete.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } }, "PendingWindowInDays": { "target": "com.amazonaws.kms#PendingWindowInDaysType", "traits": { - "smithy.api#documentation": "

The waiting period, specified in number of days. After the waiting period ends, KMS\n deletes the KMS key.

\n

If the KMS key is a multi-Region primary key with replicas, the waiting period begins when the\n last of its replica keys is deleted. Otherwise, the waiting period begins immediately.

\n

This value is optional. If you include a value, it must be between 7 and 30, inclusive. If\n you do not include a value, it defaults to 30.

" + "smithy.api#documentation": "

The waiting period, specified in number of days. After the waiting period ends, KMS\n deletes the KMS key.

\n

If the KMS key is a multi-Region primary key with replicas, the waiting period begins when\n the last of its replica keys is deleted. Otherwise, the waiting period begins\n immediately.

\n

This value is optional. If you include a value, it must be between 7 and 30, inclusive. If\n you do not include a value, it defaults to 30.

" } } } @@ -4564,19 +4564,19 @@ "DeletionDate": { "target": "com.amazonaws.kms#DateType", "traits": { - "smithy.api#documentation": "

The date and time after which KMS deletes the KMS key.

\n

If the KMS key is a multi-Region primary key with replica keys, this field does not appear.\n The deletion date for the primary key isn't known until its last replica key is\n deleted.

" + "smithy.api#documentation": "

The date and time after which KMS deletes the KMS key.

\n

If the KMS key is a multi-Region primary key with replica keys, this field does not\n appear. The deletion date for the primary key isn't known until its last replica key is\n deleted.

" } }, "KeyState": { "target": "com.amazonaws.kms#KeyState", "traits": { - "smithy.api#documentation": "

The current status of the KMS key.

\n

For more information about how key state affects the use of a KMS key, see Key state: Effect on your KMS key\n in the Key Management Service Developer Guide.

" + "smithy.api#documentation": "

The current status of the KMS key.

\n

For more information about how key state affects the use of a KMS key, see Key state: Effect on your KMS\n key in the Key Management Service Developer Guide.

" } }, "PendingWindowInDays": { "target": "com.amazonaws.kms#PendingWindowInDaysType", "traits": { - "smithy.api#documentation": "

The waiting period before the KMS key is deleted.

\n

If the KMS key is a multi-Region primary key with replicas, the waiting period begins when the\n last of its replica keys is deleted. Otherwise, the waiting period begins immediately.

" + "smithy.api#documentation": "

The waiting period before the KMS key is deleted.

\n

If the KMS key is a multi-Region primary key with replicas, the waiting period begins when\n the last of its replica keys is deleted. Otherwise, the waiting period begins\n immediately.

" } } } @@ -4616,7 +4616,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a digital\n signature for a message or message digest by using the private key in an asymmetric KMS key. To verify the signature, use the Verify operation, or use the public\n key in the same asymmetric KMS key outside of KMS. For information about symmetric and asymmetric KMS keys, see Using Symmetric and Asymmetric KMS keys in the Key Management Service Developer Guide.

\n

Digital signatures are generated and verified by using asymmetric key pair, such as an RSA\n or ECC pair that is represented by an asymmetric KMS key. The key owner (or\n an authorized user) uses their private key to sign a message. Anyone with the public key can\n verify that the message was signed with that particular private key and that the message\n hasn't changed since it was signed.

\n

To use the Sign operation, provide the following information:

\n \n \n

When signing a message, be sure to record the KMS key and the signing algorithm. This\n information is required to verify the signature.

\n
\n

To verify the signature that this operation generates, use the Verify\n operation. Or use the GetPublicKey operation to download the public key and\n then use the public key to verify the signature outside of KMS.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:Sign (key policy)

\n

\n Related operations: Verify\n

" + "smithy.api#documentation": "

Creates a digital\n signature for a message or message digest by using the private key in an asymmetric\n KMS key. To verify the signature, use the Verify operation, or use the\n public key in the same asymmetric KMS key outside of KMS. For information about symmetric and asymmetric KMS keys, see Using Symmetric and Asymmetric KMS keys in the Key Management Service Developer Guide.

\n

Digital signatures are generated and verified by using asymmetric key pair, such as an RSA\n or ECC pair that is represented by an asymmetric KMS key. The key owner (or an authorized\n user) uses their private key to sign a message. Anyone with the public key can verify that the\n message was signed with that particular private key and that the message hasn't changed since\n it was signed.

\n

To use the Sign operation, provide the following information:

\n \n \n

When signing a message, be sure to record the KMS key and the signing algorithm. This\n information is required to verify the signature.

\n
\n

To verify the signature that this operation generates, use the Verify\n operation. Or use the GetPublicKey operation to download the public key and\n then use the public key to verify the signature outside of KMS.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n\n

\n Required permissions: kms:Sign (key policy)

\n

\n Related operations: Verify\n

" } }, "com.amazonaws.kms#SignRequest": { @@ -4625,7 +4625,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies an asymmetric KMS key. KMS uses the private key in the asymmetric KMS key to sign the\n message. The KeyUsage type of the KMS key must be SIGN_VERIFY. To find\n the KeyUsage of a KMS key, use the DescribeKey operation.

\n \n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#documentation": "

Identifies an asymmetric KMS key. KMS uses the private key in the asymmetric KMS key to\n sign the message. The KeyUsage type of the KMS key must be\n SIGN_VERIFY. To find the KeyUsage of a KMS key, use the DescribeKey operation.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "smithy.api#required": {} } }, @@ -4651,7 +4651,7 @@ "SigningAlgorithm": { "target": "com.amazonaws.kms#SigningAlgorithmSpec", "traits": { - "smithy.api#documentation": "

Specifies the signing algorithm to use when signing the message.

\n

Choose an algorithm that is compatible with the type and size of the specified asymmetric KMS key.

", + "smithy.api#documentation": "

Specifies the signing algorithm to use when signing the message.

\n

Choose an algorithm that is compatible with the type and size of the specified asymmetric\n KMS key.

", "smithy.api#required": {} } } @@ -4748,7 +4748,7 @@ } }, "traits": { - "smithy.api#documentation": "

A key-value pair. A tag consists of a tag key and a tag value. Tag keys and tag values are\n both required, but tag values can be empty (null) strings.

\n

For information about the rules that apply to tag keys and tag values, see User-Defined Tag Restrictions in the Amazon Web Services Billing and Cost Management User\n Guide.

" + "smithy.api#documentation": "

A key-value pair. A tag consists of a tag key and a tag value. Tag keys and tag values are\n both required, but tag values can be empty (null) strings.

\n

For information about the rules that apply to tag keys and tag values, see User-Defined Tag Restrictions in the Amazon Web Services Billing and Cost Management\n User Guide.

" } }, "com.amazonaws.kms#TagException": { @@ -4815,7 +4815,7 @@ } ], "traits": { - "smithy.api#documentation": "

Adds or edits tags on a customer managed key.

\n \n

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see Using ABAC in KMS in the Key Management Service Developer Guide.

\n
\n

Each tag consists of a tag key and a tag value, both of which are case-sensitive strings.\n The tag value can be an empty (null) string. To add a tag, specify a new tag key and a tag\n value. To edit a tag, specify an existing tag key and a new tag value.

\n

You can use this operation to tag a customer managed key, but you cannot\n tag an Amazon Web Services managed key, an Amazon Web Services owned key, a custom key store, or\n an alias.

\n

You can also add tags to a KMS key while creating it (CreateKey) or replicating it (ReplicateKey).

\n

For information about using tags in KMS, see Tagging keys. For general information about\n tags, including the format and syntax, see Tagging Amazon Web Services resources in the Amazon\n Web Services General Reference.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:TagResource (key policy)

\n

\n Related operations\n

\n " + "smithy.api#documentation": "

Adds or edits tags on a customer managed key.

\n \n

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see Using ABAC in KMS in the Key Management Service Developer Guide.

\n
\n

Each tag consists of a tag key and a tag value, both of which are case-sensitive strings.\n The tag value can be an empty (null) string. To add a tag, specify a new tag key and a tag\n value. To edit a tag, specify an existing tag key and a new tag value.

\n

You can use this operation to tag a customer managed key, but you cannot\n tag an Amazon Web Services\n managed key, an Amazon Web Services owned key, a custom key\n store, or an alias.

\n

You can also add tags to a KMS key while creating it (CreateKey) or\n replicating it (ReplicateKey).

\n

For information about using tags in KMS, see Tagging keys. For general information about\n tags, including the format and syntax, see Tagging Amazon Web Services resources in the Amazon\n Web Services General Reference.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n\n

\n Required permissions: kms:TagResource (key policy)

\n

\n Related operations\n

\n " } }, "com.amazonaws.kms#TagResourceRequest": { @@ -5007,7 +5007,7 @@ "name": "kms" }, "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "Key Management Service\n

Key Management Service (KMS) is an encryption and key management web service. This guide describes\n the KMS operations that you can call programmatically. For general information about KMS,\n see the \n Key Management Service Developer Guide\n .

\n \n

KMS is replacing the term customer master key (CMK) with KMS key and KMS key. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.

\n

Amazon Web Services provides SDKs that consist of libraries and sample code for various programming\n languages and platforms (Java, Ruby, .Net, macOS, Android, etc.). The SDKs provide a\n convenient way to create programmatic access to KMS and other Amazon Web Services services. For example,\n the SDKs take care of tasks such as signing requests (see below), managing errors, and\n retrying requests automatically. For more information about the Amazon Web Services SDKs, including how to\n download and install them, see Tools for Amazon Web\n Services.

\n
\n

We recommend that you use the Amazon Web Services SDKs to make programmatic API calls to KMS.

\n

Clients must support TLS (Transport Layer Security) 1.0. We recommend TLS 1.2. Clients\n must also support cipher suites with Perfect Forward Secrecy (PFS) such as Ephemeral\n Diffie-Hellman (DHE) or Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). Most modern systems\n such as Java 7 and later support these modes.

\n

\n Signing Requests\n

\n

Requests must be signed by using an access key ID and a secret access key. We strongly\n recommend that you do not use your Amazon Web Services account (root) access key ID and\n secret key for everyday work with KMS. Instead, use the access key ID and secret access key\n for an IAM user. You can also use the Amazon Web Services Security Token Service to generate temporary\n security credentials that you can use to sign requests.

\n

All KMS operations require Signature Version 4.

\n

\n Logging API Requests\n

\n

KMS supports CloudTrail, a service that logs Amazon Web Services API calls and related events for your Amazon Web Services account and delivers them to an Amazon S3 bucket that you specify. By using the information\n collected by CloudTrail, you can determine what requests were made to KMS, who made the request,\n when it was made, and so on. To learn more about CloudTrail, including how to turn it on and find\n your log files, see the CloudTrail User Guide.

\n

\n Additional Resources\n

\n

For more information about credentials and request signing, see the following:

\n \n

\n Commonly Used API Operations\n

\n

Of the API operations discussed in this guide, the following will prove the most useful\n for most applications. You will likely perform operations other than these, such as creating\n keys and assigning policies, by using the console.

\n ", + "smithy.api#documentation": "Key Management Service\n

Key Management Service (KMS) is an encryption and key management web service. This guide describes\n the KMS operations that you can call programmatically. For general information about KMS,\n see the \n Key Management Service Developer Guide\n .

\n \n

KMS is replacing the term customer master key (CMK) with KMS key and KMS key. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.

\n

Amazon Web Services provides SDKs that consist of libraries and sample code for various programming\n languages and platforms (Java, Ruby, .Net, macOS, Android, etc.). The SDKs provide a\n convenient way to create programmatic access to KMS and other Amazon Web Services services. For example,\n the SDKs take care of tasks such as signing requests (see below), managing errors, and\n retrying requests automatically. For more information about the Amazon Web Services SDKs, including how to\n download and install them, see Tools for Amazon Web\n Services.

\n
\n

We recommend that you use the Amazon Web Services SDKs to make programmatic API calls to KMS.

\n

Clients must support TLS (Transport Layer Security) 1.0. We recommend TLS 1.2. Clients\n must also support cipher suites with Perfect Forward Secrecy (PFS) such as Ephemeral\n Diffie-Hellman (DHE) or Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). Most modern systems\n such as Java 7 and later support these modes.

\n

\n Signing Requests\n

\n

Requests must be signed by using an access key ID and a secret access key. We strongly\n recommend that you do not use your Amazon Web Services account (root) access key ID and\n secret key for everyday work with KMS. Instead, use the access key ID and secret access key\n for an IAM user. You can also use the Amazon Web Services Security Token Service to generate temporary\n security credentials that you can use to sign requests.

\n

All KMS operations require Signature Version 4.

\n

\n Logging API Requests\n

\n

KMS supports CloudTrail, a service that logs Amazon Web Services API calls and related events for your\n Amazon Web Services account and delivers them to an Amazon S3 bucket that you specify. By using the\n information collected by CloudTrail, you can determine what requests were made to KMS, who made\n the request, when it was made, and so on. To learn more about CloudTrail, including how to turn it\n on and find your log files, see the CloudTrail User Guide.

\n

\n Additional Resources\n

\n

For more information about credentials and request signing, see the following:

\n \n

\n Commonly Used API Operations\n

\n

Of the API operations discussed in this guide, the following will prove the most useful\n for most applications. You will likely perform operations other than these, such as creating\n keys and assigning policies, by using the console.

\n ", "smithy.api#title": "AWS Key Management Service", "smithy.api#xmlNamespace": { "uri": "https://trent.amazonaws.com/doc/2014-11-01/" @@ -5063,7 +5063,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes tags from a customer managed key. To delete a tag,\n specify the tag key and the KMS key.

\n \n

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see Using ABAC in KMS in the Key Management Service Developer Guide.

\n
\n

When it succeeds, the UntagResource operation doesn't return any output.\n Also, if the specified tag key isn't found on the KMS key, it doesn't throw an exception or return\n a response. To confirm that the operation worked, use the ListResourceTags operation.

\n \n

For information about using tags in KMS, see Tagging keys. For general information about\n tags, including the format and syntax, see Tagging Amazon Web Services resources in the Amazon\n Web Services General Reference.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:UntagResource (key policy)

\n

\n Related operations\n

\n " + "smithy.api#documentation": "

Deletes tags from a customer managed key. To delete a tag,\n specify the tag key and the KMS key.

\n \n

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see Using ABAC in KMS in the Key Management Service Developer Guide.

\n
\n

When it succeeds, the UntagResource operation doesn't return any output.\n Also, if the specified tag key isn't found on the KMS key, it doesn't throw an exception or\n return a response. To confirm that the operation worked, use the ListResourceTags operation.

\n\n

For information about using tags in KMS, see Tagging keys. For general information about\n tags, including the format and syntax, see Tagging Amazon Web Services resources in the Amazon\n Web Services General Reference.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n\n

\n Required permissions: kms:UntagResource (key policy)

\n

\n Related operations\n

\n " } }, "com.amazonaws.kms#UntagResourceRequest": { @@ -5108,7 +5108,7 @@ } ], "traits": { - "smithy.api#documentation": "

Associates an existing KMS alias with a different KMS key. Each alias\n is associated with only one KMS key at a time, although a KMS key can have multiple aliases. The alias\n and the KMS key must be in the same Amazon Web Services account and Region.

\n \n

Adding, deleting, or updating an alias can allow or deny permission to the KMS key. For details, see Using ABAC in KMS in the Key Management Service Developer Guide.

\n
\n

The current and new KMS key must be the same type (both symmetric or both asymmetric), and\n they must have the same key usage (ENCRYPT_DECRYPT or SIGN_VERIFY).\n This restriction prevents errors in code that uses aliases. If you must assign an alias to a\n different type of KMS key, use DeleteAlias to delete the old alias and CreateAlias to create a new alias.

\n

You cannot use UpdateAlias to change an alias name. To change an alias name,\n use DeleteAlias to delete the old alias and CreateAlias to\n create a new alias.

\n

Because an alias is not a property of a KMS key, you can create, update, and delete the\n aliases of a KMS key without affecting the KMS key. Also, aliases do not appear in the response from\n the DescribeKey operation. To get the aliases of all KMS keys in the account,\n use the ListAliases operation.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions\n

\n \n

For details, see Controlling access to aliases in the Key Management Service Developer Guide.

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Associates an existing KMS alias with a different KMS key. Each alias is associated with\n only one KMS key at a time, although a KMS key can have multiple aliases. The alias and the\n KMS key must be in the same Amazon Web Services account and Region.

\n \n

Adding, deleting, or updating an alias can allow or deny permission to the KMS key. For details, see Using ABAC in KMS in the Key Management Service Developer Guide.

\n
\n

The current and new KMS key must be the same type (both symmetric or both asymmetric), and\n they must have the same key usage (ENCRYPT_DECRYPT or SIGN_VERIFY).\n This restriction prevents errors in code that uses aliases. If you must assign an alias to a\n different type of KMS key, use DeleteAlias to delete the old alias and CreateAlias to create a new alias.

\n

You cannot use UpdateAlias to change an alias name. To change an alias name,\n use DeleteAlias to delete the old alias and CreateAlias to\n create a new alias.

\n

Because an alias is not a property of a KMS key, you can create, update, and delete the\n aliases of a KMS key without affecting the KMS key. Also, aliases do not appear in the\n response from the DescribeKey operation. To get the aliases of all KMS keys\n in the account, use the ListAliases operation.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n

\n Required permissions\n

\n \n

For details, see Controlling access to aliases in the\n Key Management Service Developer Guide.

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#UpdateAliasRequest": { @@ -5124,7 +5124,7 @@ "TargetKeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies the customer managed key to associate with the alias. You don't have permission\n to associate an alias with an Amazon Web Services managed key.

\n

The KMS key must be in the same Amazon Web Services account and Region as the alias. Also, the new target KMS key\n must be the same type as the current target KMS key (both symmetric or both asymmetric) and they\n must have the same key usage.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

\n

To verify that the alias\n is mapped to the correct KMS key, use ListAliases.

", + "smithy.api#documentation": "

Identifies the customer managed key to associate with the alias. You don't have permission to\n associate an alias with an Amazon Web Services managed key.

\n

The KMS key must be in the same Amazon Web Services account and Region as the alias. Also, the new\n target KMS key must be the same type as the current target KMS key (both symmetric or both\n asymmetric) and they must have the same key usage.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

\n

To\n verify that the alias is mapped to the correct KMS key, use ListAliases.

", "smithy.api#required": {} } } @@ -5165,7 +5165,7 @@ } ], "traits": { - "smithy.api#documentation": "

Changes the properties of a custom key store. Use the CustomKeyStoreId\n parameter to identify the custom key store you want to edit. Use the remaining parameters to\n change the properties of the custom key store.

\n

You can only update a custom key store that is disconnected. To disconnect the custom key\n store, use DisconnectCustomKeyStore. To reconnect the custom key store after\n the update completes, use ConnectCustomKeyStore. To find the connection\n state of a custom key store, use the DescribeCustomKeyStores\n operation.

\n

Use the parameters of UpdateCustomKeyStore to edit your keystore\n settings.

\n \n

If the operation succeeds, it returns a JSON object with no\nproperties.

\n

This operation is part of the Custom Key Store feature feature in KMS, which\ncombines the convenience and extensive integration of KMS with the isolation and control of a\nsingle-tenant key store.

\n\n

\n Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

\n

\n Required permissions: kms:UpdateCustomKeyStore (IAM policy)

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Changes the properties of a custom key store. Use the CustomKeyStoreId\n parameter to identify the custom key store you want to edit. Use the remaining parameters to\n change the properties of the custom key store.

\n

You can only update a custom key store that is disconnected. To disconnect the custom key\n store, use DisconnectCustomKeyStore. To reconnect the custom key store after\n the update completes, use ConnectCustomKeyStore. To find the connection\n state of a custom key store, use the DescribeCustomKeyStores\n operation.

\n

The CustomKeyStoreId parameter is required in all commands. Use the other\n parameters of UpdateCustomKeyStore to edit your key store settings.

\n \n

If the operation succeeds, it returns a JSON object with no\nproperties.

\n

This operation is part of the Custom Key Store feature feature in KMS, which\ncombines the convenience and extensive integration of KMS with the isolation and control of a\nsingle-tenant key store.

\n

\n Cross-account\n use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

\n

\n Required permissions: kms:UpdateCustomKeyStore (IAM policy)

\n

\n Related operations:\n

\n " } }, "com.amazonaws.kms#UpdateCustomKeyStoreRequest": { @@ -5225,7 +5225,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the description of a KMS key. To see the description of a KMS key,\n use DescribeKey.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n \n

\n Required permissions: kms:UpdateKeyDescription (key policy)

\n

\n Related operations\n

\n " + "smithy.api#documentation": "

Updates the description of a KMS key. To see the description of a KMS key, use DescribeKey.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account\n use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

\n\n

\n Required permissions: kms:UpdateKeyDescription (key policy)

\n

\n Related operations\n

\n " } }, "com.amazonaws.kms#UpdateKeyDescriptionRequest": { @@ -5234,7 +5234,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Updates the description of the specified KMS key.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Updates the description of the specified KMS key.

\n \n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } }, @@ -5273,7 +5273,7 @@ } ], "traits": { - "smithy.api#documentation": "

Changes the primary key of a multi-Region key.

\n

This operation changes the replica key in the specified Region to a primary key and\n changes the former primary key to a replica key. For example, suppose you have a primary key\n in us-east-1 and a replica key in eu-west-2. If you run\n UpdatePrimaryRegion with a PrimaryRegion value of\n eu-west-2, the primary key is now the key in eu-west-2, and the\n key in us-east-1 becomes a replica key. For details, see Updating the primary Region in the Key Management Service Developer Guide.

\n

This operation supports multi-Region keys, an KMS feature that lets you create multiple\n interoperable KMS keys in different Amazon Web Services Regions. Because these KMS keys have the same key ID, key\n material, and other metadata, you can use them interchangeably to encrypt data in one Amazon Web Services Region and decrypt\n it in a different Amazon Web Services Region without re-encrypting the data or making a cross-Region call. For more information about multi-Region keys, see Using multi-Region keys in the Key Management Service Developer Guide.

\n

The primary key of a multi-Region key is the source for properties\n that are always shared by primary and replica keys, including the key material, key ID, key spec, key usage, key material\n origin, and automatic\n key rotation. It's the only key that can be replicated. You cannot delete the primary\n key until all replica keys are deleted.

\n

The key ID and primary Region that you specify uniquely identify the replica key that will\n become the primary key. The primary Region must already have a replica key. This operation\n does not create a KMS key in the specified Region. To find the replica keys, use the DescribeKey operation on the primary key or any replica key. To create a replica\n key, use the ReplicateKey operation.

\n

You can run this operation while using the affected multi-Region keys in cryptographic\n operations. This operation should not delay, interrupt, or cause failures in cryptographic\n operations.

\n

Even after this operation completes, the process of updating the primary Region might\n still be in progress for a few more seconds. Operations such as DescribeKey might\n display both the old and new primary keys as replicas. The old and new primary keys have a\n transient key state of Updating. The original key state is restored when the\n update is complete. While the key state is Updating, you can use the keys in\n cryptographic operations, but you cannot replicate the new primary key or perform certain\n management operations, such as enabling or disabling these keys. For details about the\n Updating key state, see Key state:\n Effect on your KMS key in the Key Management Service Developer Guide.

\n

This operation does not return any output. To verify that primary key is changed, use the\n DescribeKey operation.

\n

\n Cross-account use: No. You cannot use this operation in a\n different Amazon Web Services account.

\n

\n Required permissions:

\n \n

\n Related operations\n

\n " + "smithy.api#documentation": "

Changes the primary key of a multi-Region key.

\n

This operation changes the replica key in the specified Region to a primary key and\n changes the former primary key to a replica key. For example, suppose you have a primary key\n in us-east-1 and a replica key in eu-west-2. If you run\n UpdatePrimaryRegion with a PrimaryRegion value of\n eu-west-2, the primary key is now the key in eu-west-2, and the\n key in us-east-1 becomes a replica key. For details, see Updating the primary Region in the Key Management Service Developer Guide.

\n

This operation supports multi-Region keys, an KMS feature that lets you create multiple\n interoperable KMS keys in different Amazon Web Services Regions. Because these KMS keys have the same key ID, key\n material, and other metadata, you can use them interchangeably to encrypt data in one Amazon Web Services Region and decrypt\n it in a different Amazon Web Services Region without re-encrypting the data or making a cross-Region call. For more information about multi-Region keys, see Using multi-Region keys in the Key Management Service Developer Guide.

\n

The primary key of a multi-Region key is the source for properties\n that are always shared by primary and replica keys, including the key material, key ID, key spec, key usage, key material\n origin, and automatic\n key rotation. It's the only key that can be replicated. You cannot delete the primary\n key until all replica keys are deleted.

\n

The key ID and primary Region that you specify uniquely identify the replica key that will\n become the primary key. The primary Region must already have a replica key. This operation\n does not create a KMS key in the specified Region. To find the replica keys, use the DescribeKey operation on the primary key or any replica key. To create a replica\n key, use the ReplicateKey operation.

\n

You can run this operation while using the affected multi-Region keys in cryptographic\n operations. This operation should not delay, interrupt, or cause failures in cryptographic\n operations.

\n

Even after this operation completes, the process of updating the primary Region might\n still be in progress for a few more seconds. Operations such as DescribeKey might\n display both the old and new primary keys as replicas. The old and new primary keys have a\n transient key state of Updating. The original key state is restored when the\n update is complete. While the key state is Updating, you can use the keys in\n cryptographic operations, but you cannot replicate the new primary key or perform certain\n management operations, such as enabling or disabling these keys. For details about the\n Updating key state, see Key state:\n Effect on your KMS key in the Key Management Service Developer Guide.

\n

This operation does not return any output. To verify that primary key is changed, use the\n DescribeKey operation.

\n

\n Cross-account use: No. You cannot use this operation in a\n different Amazon Web Services account.

\n

\n Required permissions:

\n \n

\n Related operations\n

\n " } }, "com.amazonaws.kms#UpdatePrimaryRegionRequest": { @@ -5282,14 +5282,14 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies the current primary key. When the operation completes, this KMS key will be a\n replica key.

\n \n

Specify the key ID or key ARN of a multi-Region primary key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#documentation": "

Identifies the current primary key. When the operation completes, this KMS key will be a\n replica key.

\n

Specify the key ID or key ARN of a multi-Region primary key.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } }, "PrimaryRegion": { "target": "com.amazonaws.kms#RegionType", "traits": { - "smithy.api#documentation": "

The Amazon Web Services Region of the new primary key. Enter the Region ID, such as us-east-1\n or ap-southeast-2. There must be an existing replica key in this Region.

\n

When the operation completes, the multi-Region key in this Region will be the primary\n key.

", + "smithy.api#documentation": "

The Amazon Web Services Region of the new primary key. Enter the Region ID, such as\n us-east-1 or ap-southeast-2. There must be an existing replica key\n in this Region.

\n

When the operation completes, the multi-Region key in this Region will be the primary\n key.

", "smithy.api#required": {} } } @@ -5333,7 +5333,7 @@ } ], "traits": { - "smithy.api#documentation": "

Verifies a digital signature that was generated by the Sign operation.

\n

\n

Verification confirms that an authorized user signed the message with the specified KMS key\n and signing algorithm, and the message hasn't changed since it was signed. If the signature is\n verified, the value of the SignatureValid field in the response is\n True. If the signature verification fails, the Verify operation\n fails with an KMSInvalidSignatureException exception.

\n

A digital signature is generated by using the private key in an asymmetric KMS key. The\n signature is verified by using the public key in the same asymmetric KMS key.\n For information about symmetric and asymmetric KMS keys, see Using Symmetric and Asymmetric KMS keys in the Key Management Service Developer Guide.

\n

To verify a digital signature, you can use the Verify operation. Specify the\n same asymmetric KMS key, message, and signing algorithm that were used to produce the\n signature.

\n

You can also verify the digital signature by using the public key of the KMS key outside of\n KMS. Use the GetPublicKey operation to download the public key in the\n asymmetric KMS key and then use the public key to verify the signature outside of KMS. The\n advantage of using the Verify operation is that it is performed within KMS. As\n a result, it's easy to call, the operation is performed within the FIPS boundary, it is logged\n in CloudTrail, and you can use key policy and IAM policy to determine who is authorized to use\n the KMS key to verify signatures.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n \n

\n Required permissions: kms:Verify (key policy)

\n

\n Related operations: Sign\n

" + "smithy.api#documentation": "

Verifies a digital signature that was generated by the Sign operation.

\n

\n

Verification confirms that an authorized user signed the message with the specified KMS\n key and signing algorithm, and the message hasn't changed since it was signed. If the\n signature is verified, the value of the SignatureValid field in the response is\n True. If the signature verification fails, the Verify operation\n fails with an KMSInvalidSignatureException exception.

\n

A digital signature is generated by using the private key in an asymmetric KMS key. The\n signature is verified by using the public key in the same asymmetric KMS key.\n For information about symmetric and asymmetric KMS keys, see Using Symmetric and Asymmetric KMS keys in the Key Management Service Developer Guide.

\n

To verify a digital signature, you can use the Verify operation. Specify the\n same asymmetric KMS key, message, and signing algorithm that were used to produce the\n signature.

\n

You can also verify the digital signature by using the public key of the KMS key outside\n of KMS. Use the GetPublicKey operation to download the public key in the\n asymmetric KMS key and then use the public key to verify the signature outside of KMS. The\n advantage of using the Verify operation is that it is performed within KMS. As\n a result, it's easy to call, the operation is performed within the FIPS boundary, it is logged\n in CloudTrail, and you can use key policy and IAM policy to determine who is authorized to use\n the KMS key to verify signatures.

\n

The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see Key state: Effect on your KMS key in the Key Management Service Developer Guide.

\n

\n Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n the key ARN or alias ARN in the value of the KeyId parameter.

\n\n

\n Required permissions: kms:Verify (key policy)

\n

\n Related operations: Sign\n

" } }, "com.amazonaws.kms#VerifyRequest": { @@ -5342,7 +5342,7 @@ "KeyId": { "target": "com.amazonaws.kms#KeyIdType", "traits": { - "smithy.api#documentation": "

Identifies the asymmetric KMS key that will be used to verify the signature. This must be the\n same KMS key that was used to generate the signature. If you specify a different KMS key, the\n signature verification fails.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "smithy.api#documentation": "

Identifies the asymmetric KMS key that will be used to verify the signature. This must be\n the same KMS key that was used to generate the signature. If you specify a different KMS key,\n the signature verification fails.

\n

To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

\n

For example:

\n \n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "smithy.api#required": {} } }, diff --git a/codegen/sdk-codegen/aws-models/lexmodelsv2.2020-08-07.json b/codegen/sdk-codegen/aws-models/lexmodelsv2.2020-08-07.json index e9a2526240c..443737e10a0 100644 --- a/codegen/sdk-codegen/aws-models/lexmodelsv2.2020-08-07.json +++ b/codegen/sdk-codegen/aws-models/lexmodelsv2.2020-08-07.json @@ -1814,7 +1814,7 @@ "nluIntentConfidenceThreshold": { "target": "com.amazonaws.lexmodelsv2#ConfidenceThreshold", "traits": { - "smithy.api#documentation": "

Determines the threshold where Amazon Lex will insert the\n AMAZON.FallbackIntent,\n AMAZON.KendraSearchIntent, or both when returning\n alternative intents. AMAZON.FallbackIntent and\n AMAZON.KendraSearchIntent are only inserted if they are\n configured for the bot.

\n

For example, suppose a bot is configured with the confidence\n threshold of 0.80 and the AMAZON.FallbackIntent. Amazon Lex\n returns three alternative intents with the following confidence scores:\n IntentA (0.70), IntentB (0.60), IntentC (0.50). The response from the\n PostText operation would be:

\n ", + "smithy.api#documentation": "

Determines the threshold where Amazon Lex will insert the\n AMAZON.FallbackIntent,\n AMAZON.KendraSearchIntent, or both when returning\n alternative intents. AMAZON.FallbackIntent and\n AMAZON.KendraSearchIntent are only inserted if they are\n configured for the bot.

\n

For example, suppose a bot is configured with the confidence\n threshold of 0.80 and the AMAZON.FallbackIntent. Amazon Lex\n returns three alternative intents with the following confidence scores:\n IntentA (0.70), IntentB (0.60), IntentC (0.50). The response from the\n RecognizeText operation would be:

\n ", "smithy.api#required": {} } }, @@ -5034,7 +5034,7 @@ "failureReasons": { "target": "com.amazonaws.lexmodelsv2#FailureReasons", "traits": { - "smithy.api#documentation": "

If the importStatus field is Failed, this\n provides one or more reasons for the failture.

" + "smithy.api#documentation": "

If the importStatus field is Failed, this\n provides one or more reasons for the failure.

" } }, "creationDateTime": { @@ -5668,7 +5668,7 @@ "values": { "target": "com.amazonaws.lexmodelsv2#FilterValues", "traits": { - "smithy.api#documentation": "

The values to use to fileter the response.

", + "smithy.api#documentation": "

The values to use to filter the response.

", "smithy.api#required": {} } }, @@ -5681,7 +5681,7 @@ } }, "traits": { - "smithy.api#documentation": "

Filtes the response form the \n operation

" + "smithy.api#documentation": "

Filters the response form the \n operation

" } }, "com.amazonaws.lexmodelsv2#ExportFilterName": { @@ -5888,12 +5888,143 @@ "smithy.api#documentation": "

Indicates whether a Lambda function should be invoked to fulfill a\n specific intent.

", "smithy.api#required": {} } + }, + "postFulfillmentStatusSpecification": { + "target": "com.amazonaws.lexmodelsv2#PostFulfillmentStatusSpecification", + "traits": { + "smithy.api#documentation": "

Provides settings for messages sent to the user for after the Lambda\n fulfillment function completes. Post-fulfillment messages can be sent\n for both streaming and non-streaming conversations.

" + } + }, + "fulfillmentUpdatesSpecification": { + "target": "com.amazonaws.lexmodelsv2#FulfillmentUpdatesSpecification", + "traits": { + "smithy.api#documentation": "

Provides settings for update messages sent to the user for\n long-running Lambda fulfillment functions. Fulfillment updates can be\n used only with streaming conversations.

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

Determines if a Lambda function should be invoked for a specific\n intent.

" } }, + "com.amazonaws.lexmodelsv2#FulfillmentStartResponseDelay": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 1, + "max": 900 + } + } + }, + "com.amazonaws.lexmodelsv2#FulfillmentStartResponseSpecification": { + "type": "structure", + "members": { + "delayInSeconds": { + "target": "com.amazonaws.lexmodelsv2#FulfillmentStartResponseDelay", + "traits": { + "smithy.api#documentation": "

The delay between when the Lambda fulfillment function starts running\n and the start message is played. If the Lambda function returns before\n the delay is over, the start message isn't played.

", + "smithy.api#required": {} + } + }, + "messageGroups": { + "target": "com.amazonaws.lexmodelsv2#MessageGroupsList", + "traits": { + "smithy.api#documentation": "

One to 5 message groups that contain start messages. Amazon Lex chooses\n one of the messages to play to the user.

", + "smithy.api#required": {} + } + }, + "allowInterrupt": { + "target": "com.amazonaws.lexmodelsv2#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Determines whether the user can interrupt the start message while it\n is playing.

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

Provides settings for a message that is sent to the user when a\n fulfillment Lambda function starts running.

" + } + }, + "com.amazonaws.lexmodelsv2#FulfillmentTimeout": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 1, + "max": 900 + } + } + }, + "com.amazonaws.lexmodelsv2#FulfillmentUpdateResponseFrequency": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 1, + "max": 900 + } + } + }, + "com.amazonaws.lexmodelsv2#FulfillmentUpdateResponseSpecification": { + "type": "structure", + "members": { + "frequencyInSeconds": { + "target": "com.amazonaws.lexmodelsv2#FulfillmentUpdateResponseFrequency", + "traits": { + "smithy.api#documentation": "

The frequency that a message is sent to the user. When the period\n ends, Amazon Lex chooses a message from the message groups and plays it to\n the user. If the fulfillment Lambda returns before the first period\n ends, an update message is not played to the user.

", + "smithy.api#required": {} + } + }, + "messageGroups": { + "target": "com.amazonaws.lexmodelsv2#MessageGroupsList", + "traits": { + "smithy.api#documentation": "

One to 5 message groups that contain update messages. Amazon Lex chooses\n one of the messages to play to the user.

", + "smithy.api#required": {} + } + }, + "allowInterrupt": { + "target": "com.amazonaws.lexmodelsv2#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Determines whether the user can interrupt an update message while it\n is playing.

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

Provides settings for a message that is sent periodically to the\n user while a fulfillment Lambda function is running.

" + } + }, + "com.amazonaws.lexmodelsv2#FulfillmentUpdatesSpecification": { + "type": "structure", + "members": { + "active": { + "target": "com.amazonaws.lexmodelsv2#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Determines whether fulfillment updates are sent to the user. When\n this field is true, updates are sent.

\n

If the active field is set to true, the\n startResponse, updateResponse, and\n timeoutInSeconds fields are required.

", + "smithy.api#required": {} + } + }, + "startResponse": { + "target": "com.amazonaws.lexmodelsv2#FulfillmentStartResponseSpecification", + "traits": { + "smithy.api#documentation": "

Provides configuration information for the message sent to users\n when the fulfillment Lambda functions starts running.

" + } + }, + "updateResponse": { + "target": "com.amazonaws.lexmodelsv2#FulfillmentUpdateResponseSpecification", + "traits": { + "smithy.api#documentation": "

Provides configuration information for messages sent periodically to\n the user while the fulfillment Lambda function is running.

" + } + }, + "timeoutInSeconds": { + "target": "com.amazonaws.lexmodelsv2#FulfillmentTimeout", + "traits": { + "smithy.api#documentation": "

The length of time that the fulfillment Lambda function should run\n before it times out.

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

Provides information for updating the user on the progress of\n fulfilling an intent.

" + } + }, "com.amazonaws.lexmodelsv2#HitCount": { "type": "integer", "traits": { @@ -6048,7 +6179,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides information about the bot or bot locale that you want to\n import. You can sepcifiy the botImportSpecification or the\n botLocaleImportSpecification, but not both.

" + "smithy.api#documentation": "

Provides information about the bot or bot locale that you want to\n import. You can specify the botImportSpecification or the\n botLocaleImportSpecification, but not both.

" } }, "com.amazonaws.lexmodelsv2#ImportSortAttribute": { @@ -6213,7 +6344,7 @@ "active": { "target": "com.amazonaws.lexmodelsv2#BoxedBoolean", "traits": { - "smithy.api#documentation": "

Specifies whether an intent's closing response is used. When this\n field is false, the closing response isn't sent to the user and no\n closing input from the user is used. If the active field\n isn't specified, the default is true.

" + "smithy.api#documentation": "

Specifies whether an intent's closing response is used. When this\n field is false, the closing response isn't sent to the user. If the\n active field isn't specified, the default is\n true.

" } } }, @@ -6241,7 +6372,7 @@ "active": { "target": "com.amazonaws.lexmodelsv2#BoxedBoolean", "traits": { - "smithy.api#documentation": "

Specifies whether the intent's confirmation is sent to the user.\n When this field is false, confirmation and declination responses aren't\n sent and processing continues as if the responses aren't present. If\n the active field isn't specified, the default is\n true.

" + "smithy.api#documentation": "

Specifies whether the intent's confirmation is sent to the user.\n When this field is false, confirmation and declination responses aren't\n sent. If the active field isn't specified, the default is\n true.

" } } }, @@ -6501,7 +6632,7 @@ } }, "traits": { - "smithy.api#documentation": "

Specifies a Lambda function that verifies requests to a bot or\n fulfilles the user's request to a bot.

" + "smithy.api#documentation": "

Specifies a Lambda function that verifies requests to a bot or\n fulfills the user's request to a bot.

" } }, "com.amazonaws.lexmodelsv2#LexModelBuildingServiceV2": { @@ -7478,7 +7609,7 @@ "nextToken": { "target": "com.amazonaws.lexmodelsv2#NextToken", "traits": { - "smithy.api#documentation": "

If the response from the ListExports operation contans\n more results that specified in the maxResults parameter, a\n token is returned in the response. Use that token in the\n nextToken parameter to return the next page of\n results.

" + "smithy.api#documentation": "

If the response from the ListExports operation contains\n more results that specified in the maxResults parameter, a\n token is returned in the response. Use that token in the\n nextToken parameter to return the next page of\n results.

" } } } @@ -8335,6 +8466,23 @@ } } }, + "com.amazonaws.lexmodelsv2#PostFulfillmentStatusSpecification": { + "type": "structure", + "members": { + "successResponse": { + "target": "com.amazonaws.lexmodelsv2#ResponseSpecification" + }, + "failureResponse": { + "target": "com.amazonaws.lexmodelsv2#ResponseSpecification" + }, + "timeoutResponse": { + "target": "com.amazonaws.lexmodelsv2#ResponseSpecification" + } + }, + "traits": { + "smithy.api#documentation": "

Provides a setting that determines whether the post-fulfillment\n response is sent to the user. For more information, see https://docs.aws.amazon.com/lexv2/latest/dg/streaming-progress.html#progress-complete\n

" + } + }, "com.amazonaws.lexmodelsv2#PreconditionFailedException": { "type": "structure", "members": { @@ -8426,7 +8574,7 @@ "maxRetries": { "target": "com.amazonaws.lexmodelsv2#PromptMaxRetries", "traits": { - "smithy.api#documentation": "

The maximum number of times the bot tries to elicit a resonse from\n the user using this prompt.

", + "smithy.api#documentation": "

The maximum number of times the bot tries to elicit a response from\n the user using this prompt.

", "smithy.api#required": {} } }, @@ -9120,7 +9268,7 @@ "synonyms": { "target": "com.amazonaws.lexmodelsv2#SynonymList", "traits": { - "smithy.api#documentation": "

Additional values releated to the slot type entry.

" + "smithy.api#documentation": "

Additional values related to the slot type entry.

" } } }, @@ -9146,7 +9294,7 @@ "defaultValueSpecification": { "target": "com.amazonaws.lexmodelsv2#SlotDefaultValueSpecification", "traits": { - "smithy.api#documentation": "

A list of default values for a slot. Default values are used when\n Amazon Lex hasn't determined a value for a slot. You can specify default\n values from context variables, sesion attributes, and defined\n values.

" + "smithy.api#documentation": "

A list of default values for a slot. Default values are used when\n Amazon Lex hasn't determined a value for a slot. You can specify default\n values from context variables, session attributes, and defined\n values.

" } }, "slotConstraint": { @@ -9182,7 +9330,7 @@ "pattern": { "target": "com.amazonaws.lexmodelsv2#RegexPattern", "traits": { - "smithy.api#documentation": "

A regular expression used to validate the value of a slot.

\n

Use a standard regular expression. Amazon Lex supports the\n following characters in the regular expression:

\n \n

Represent Unicode characters with four digits, for example \"\\u0041\"\n or \"\\u005A\".

\n

The following regular expression operators are not supported:

\n ", + "smithy.api#documentation": "

A regular expression used to validate the value of a slot.

\n

Use a standard regular expression. Amazon Lex supports the following\n characters in the regular expression:

\n \n

Represent Unicode characters with four digits, for example \"\\u0041\"\n or \"\\u005A\".

\n

The following regular expression operators are not supported:

\n ", "smithy.api#required": {} } } @@ -11029,7 +11177,7 @@ "active": { "target": "com.amazonaws.lexmodelsv2#BoxedBoolean", "traits": { - "smithy.api#documentation": "

Specifies whether the bot will wait for a user to respond. When this\n field is false, wait and continue responses for a slot aren't used and\n the bot expects an appropriate response within the configured timeout.\n If the active field isn't specified, the default is\n true.

" + "smithy.api#documentation": "

Specifies whether the bot will wait for a user to respond. When this\n field is false, wait and continue responses for a slot aren't used. If\n the active field isn't specified, the default is\n true.

" } } }, diff --git a/codegen/sdk-codegen/aws-models/lexruntimev2.2020-08-07.json b/codegen/sdk-codegen/aws-models/lexruntimev2.2020-08-07.json index 1446c79f631..fd28f6ce5d7 100644 --- a/codegen/sdk-codegen/aws-models/lexruntimev2.2020-08-07.json +++ b/codegen/sdk-codegen/aws-models/lexruntimev2.2020-08-07.json @@ -104,7 +104,7 @@ "contextAttributes": { "target": "com.amazonaws.lexruntimev2#ActiveContextParametersMap", "traits": { - "smithy.api#documentation": "

A lis tof contexts active for the request. A context can be\n activated when a previous intent is fulfilled, or by including the\n context in the request.

\n

If you don't specify a list of contexts, Amazon Lex will use the\n current list of contexts for the session. If you specify an empty list,\n all contexts for the session are cleared.

", + "smithy.api#documentation": "

A list of contexts active for the request. A context can be\n activated when a previous intent is fulfilled, or by including the\n context in the request.

\n

If you don't specify a list of contexts, Amazon Lex V2 will use the current\n list of contexts for the session. If you specify an empty list, all\n contexts for the session are cleared.

", "smithy.api#required": {} } } @@ -404,7 +404,7 @@ "disablePlayback": { "target": "com.amazonaws.lexruntimev2#Boolean", "traits": { - "smithy.api#documentation": "

Determines whether Amazon Lex V2 should send audio responses to the client\n application. When this parameter if false, the client\n application needs to create responses for the user. \n

" + "smithy.api#documentation": "

Determines whether Amazon Lex V2 should send audio responses to the client\n application. \n

\n

Set this field to false when the client is operating in a playback\n mode where audio responses are played to the user. If the client isn't\n operating in playback mode, such as a text chat application, set this\n to true so that Amazon Lex V2 doesn't wait for the prompt to finish playing on\n the client.

" } }, "eventId": { @@ -675,6 +675,10 @@ { "value": "ElicitSlot", "name": "ELICIT_SLOT" + }, + { + "value": "None", + "name": "NONE" } ] } @@ -978,6 +982,10 @@ { "value": "Waiting", "name": "WAITING" + }, + { + "value": "FulfillmentInProgress", + "name": "FULFILLMENT_IN_PROGRESS" } ] } @@ -1373,7 +1381,7 @@ } ], "traits": { - "smithy.api#documentation": "

Sends user input to Amazon Lex V2. Client applications use this API to send\n requests to Amazon Lex V2 at runtime. Amazon Lex V2 then interprets the user input\n using the machine learning model that it build for the bot.

\n

In response, Amazon Lex V2 returns the next message to convey to the user\n and an optional response card to display.

", + "smithy.api#documentation": "

Sends user input to Amazon Lex V2. Client applications use this API to send\n requests to Amazon Lex V2 at runtime. Amazon Lex V2 then interprets the user input\n using the machine learning model that it build for the bot.

\n

In response, Amazon Lex V2 returns the next message to convey to the user\n and an optional response card to display.

\n

If the optional post-fulfillment response is specified, the messages\n are returned as follows. For more information, see PostFulfillmentStatusSpecification.

\n \n

For more information, see Completion message.

", "smithy.api#http": { "method": "POST", "uri": "/bots/{botId}/botAliases/{botAliasId}/botLocales/{localeId}/sessions/{sessionId}/text", @@ -1511,7 +1519,7 @@ "smithy.api#auth": [ "aws.auth#sigv4" ], - "smithy.api#documentation": "

Sends user input to Amazon Lex V2. You can send text or speech. Clients use\n this API to send text and audio requests to Amazon Lex V2 at runtime. Amazon Lex V2\n interprets the user input using the machine learning model built for\n the bot.

\n

The following request fields must be compressed with gzip and then\n base64 encoded before you send them to Amazon Lex V2.

\n \n

The following response fields are compressed using gzip and then\n base64 encoded by Amazon Lex V2. Before you can use these fields, you must\n decode and decompress them.

\n \n

The example contains a Java application that compresses and encodes\n a Java object to send to Amazon Lex V2, and a second that decodes and\n decompresses a response from Amazon Lex V2.

", + "smithy.api#documentation": "

Sends user input to Amazon Lex V2. You can send text or speech. Clients use\n this API to send text and audio requests to Amazon Lex V2 at runtime. Amazon Lex V2\n interprets the user input using the machine learning model built for\n the bot.

\n

The following request fields must be compressed with gzip and then\n base64 encoded before you send them to Amazon Lex V2.

\n \n

The following response fields are compressed using gzip and then\n base64 encoded by Amazon Lex V2. Before you can use these fields, you must\n decode and decompress them.

\n \n

The example contains a Java application that compresses and encodes\n a Java object to send to Amazon Lex V2, and a second that decodes and\n decompresses a response from Amazon Lex V2.

\n

If the optional post-fulfillment response is specified, the messages\n are returned as follows. For more information, see PostFulfillmentStatusSpecification.

\n \n

For more information, see Completion message.

", "smithy.api#http": { "method": "POST", "uri": "/bots/{botId}/botAliases/{botAliasId}/botLocales/{localeId}/sessions/{sessionId}/utterance", @@ -1835,7 +1843,7 @@ "values": { "target": "com.amazonaws.lexruntimev2#Values", "traits": { - "smithy.api#documentation": "

A list of one or more values that the user provided for the slot.\n For example, if a for a slot that elicits pizza toppings, the values might\n be \"pepperoni\" and \"pineapple.\"

" + "smithy.api#documentation": "

A list of one or more values that the user provided for the slot.\n For example, if a for a slot that elicits pizza toppings, the values\n might be \"pepperoni\" and \"pineapple.\"

" } } }, @@ -1875,7 +1883,7 @@ } ], "traits": { - "smithy.api#documentation": "

Starts an HTTP/2 bidirectional event stream that enables you to send\n audio, text, or DTMF input in real time. After your application starts\n a conversation, users send input to Amazon Lex V2 as a stream of events. Amazon Lex V2\n processes the incoming events and responds with streaming text or audio\n events. \n

\n

Audio input must be in the following format: audio/lpcm\n sample-rate=8000 sample-size-bits=16 channel-count=1;\n is-big-endian=false.

\n

The StartConversation operation is supported only in\n the following SDKs:

\n ", + "smithy.api#documentation": "

Starts an HTTP/2 bidirectional event stream that enables you to send\n audio, text, or DTMF input in real time. After your application starts\n a conversation, users send input to Amazon Lex V2 as a stream of events. Amazon Lex V2\n processes the incoming events and responds with streaming text or audio\n events. \n

\n

Audio input must be in the following format: audio/lpcm\n sample-rate=8000 sample-size-bits=16 channel-count=1;\n is-big-endian=false.

\n

If the optional post-fulfillment response is specified, the messages\n are returned as follows. For more information, see PostFulfillmentStatusSpecification.

\n \n

For more information, see Completion message.

\n

If the optional update message is configured, it is played at the\n specified frequency while the Lambda function is running and the update\n message state is active. If the fulfillment update message is not\n active, the Lambda function runs with a 30 second timeout.

\n

For more information, see Update message \n

\n

The StartConversation operation is supported only in\n the following SDKs:

\n ", "smithy.api#http": { "method": "POST", "uri": "/bots/{botId}/botAliases/{botAliasId}/botLocales/{localeId}/sessions/{sessionId}/conversation", diff --git a/codegen/sdk-codegen/aws-models/location.2020-11-19.json b/codegen/sdk-codegen/aws-models/location.2020-11-19.json index 441e7c5674b..db03c00efe6 100644 --- a/codegen/sdk-codegen/aws-models/location.2020-11-19.json +++ b/codegen/sdk-codegen/aws-models/location.2020-11-19.json @@ -771,7 +771,7 @@ } ], "traits": { - "smithy.api#documentation": "

Uploads position update data for one or more devices to a tracker resource. Amazon Location\n uses the data when reporting the last known device position and position history.

\n \n

Only one position update is stored per sample time. Location data is sampled at a\n fixed rate of one position per 30-second interval and retained for 30 days before\n it's deleted.

\n
", + "smithy.api#documentation": "

Uploads position update data for one or more devices to a tracker resource. Amazon Location\n uses the data when it reports the last known device position and position history. Amazon Location retains location data for 30 \n days.

\n \n

Position updates are handled based on the PositionFiltering property of the tracker. \n When PositionFiltering is set to TimeBased, updates are evaluated against linked geofence collections, \n and location data is stored at a maximum of one position per 30 second interval. If your update frequency is more often than \n every 30 seconds, only one update per 30 seconds is stored for each unique device ID.\n When PositionFiltering is set to DistanceBased filtering, location data is stored and evaluated against linked geofence \n collections only if the device has moved more than 30 m (98.4 ft).

\n
", "smithy.api#endpoint": { "hostPrefix": "tracking." }, @@ -941,7 +941,7 @@ "DeparturePosition": { "target": "com.amazonaws.location#Position", "traits": { - "smithy.api#documentation": "

The start position for the route. Defined in WGS 84 format:\n [longitude, latitude].

\n \n \n

If you specify a departure that's not located on a road, Amazon Location moves the\n position to the nearest road.

\n
\n

Valid Values: [-180 to 180,-90 to 90]\n

", + "smithy.api#documentation": "

The start position for the route. Defined in WGS 84 format:\n [longitude, latitude].

\n \n \n

If you specify a departure that's not located on a road, Amazon Location moves the\n position to the nearest road. If Esri is the provider for your route calculator, \n specifying a route that is longer than 400 km returns a 400 RoutesValidationException error.

\n
\n

Valid Values: [-180 to 180,-90 to 90]\n

", "smithy.api#required": {} } }, @@ -955,7 +955,7 @@ "WaypointPositions": { "target": "com.amazonaws.location#WaypointPositionList", "traits": { - "smithy.api#documentation": "

Specifies an ordered list of up to 23 intermediate positions to include along a route\n between the departure position and destination position.

\n \n \n

If you specify a waypoint position that's not located on a road, Amazon Location moves the position to the nearest road.

\n

Specifying more than 23 waypoints returns a 400 ValidationException\n error.

\n
\n

Valid Values: [-180 to 180,-90 to 90]\n

", + "smithy.api#documentation": "

Specifies an ordered list of up to 23 intermediate positions to include along a route\n between the departure position and destination position.

\n \n \n

If you specify a waypoint position that's not located on a road, Amazon Location moves the position to the nearest road.

\n

Specifying more than 23 waypoints returns a 400 ValidationException\n error.

\n

If Esri is the provider for your route calculator, specifying a \n route that is longer than 400 km returns a 400 RoutesValidationException error.

\n
\n

Valid Values: [-180 to 180,-90 to 90]\n

", "smithy.api#length": { "max": 23 } @@ -1033,7 +1033,7 @@ "RouteBBox": { "target": "com.amazonaws.location#BoundingBox", "traits": { - "smithy.api#documentation": "

Specifies a geographical box surrounding a route. Used to zoom into a route when\n displaying it in a map. For example, [min x, min y, max x, max y].

\n

The first 2 bbox parameters describe the lower southwest corner:

\n \n

The next 2 bbox parameters describe the upper northeast corner:

\n ", + "smithy.api#documentation": "

Specifies a geographical box surrounding a route. Used to zoom into a route when\n displaying it in a map. For example, [min x, min y, max x, max y].

\n

The first 2 bbox parameters describe the lower southwest corner:

\n \n

The next 2 bbox parameters describe the upper northeast corner:

\n ", "smithy.api#required": {} } }, @@ -1047,7 +1047,7 @@ "Distance": { "target": "smithy.api#Double", "traits": { - "smithy.api#documentation": "

The total distance covered by the route. The sum of the distance travelled between\n every stop on the route.

\n \n

The route distance can't be greater than 250 km. If the route exceeds\n 250 km, the response returns a 400 RoutesValidationException\n error.

\n
", + "smithy.api#documentation": "

The total distance covered by the route. The sum of the distance travelled between\n every stop on the route.

\n \n

If Esri is the data source for the route calculator, the route distance can’t \n be greater than 400 km. If the route exceeds 400 km, the response is a \n 400 RoutesValidationException error.

\n
", "smithy.api#range": { "min": 0 }, @@ -1308,7 +1308,7 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

Specifies the pricing plan for your map resource.

\n

For additional details and restrictions on each pricing plan option, see the Amazon Location Service pricing\n page.

", + "smithy.api#documentation": "

Specifies the pricing plan for your map resource.

\n

For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

", "smithy.api#required": {} } }, @@ -1403,14 +1403,14 @@ "DataSource": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

Specifies the data provider of geospatial data.

\n \n

This field is case-sensitive. Enter the valid values as shown. For example, entering\n HERE returns an error.

\n
\n

Valid values include:

\n \n

For additional information , see Data providers\n on the Amazon Location Service Developer Guide.

", + "smithy.api#documentation": "

Specifies the data provider of geospatial data.

\n \n

This field is case-sensitive. Enter the valid values as shown. For example, entering\n HERE returns an error.

\n
\n

Valid values include:

\n \n

For additional information , see Data providers\n on the Amazon Location Service Developer Guide.

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

Specifies the pricing plan for your place index resource.

\n

For additional details and restrictions on each pricing plan option, see the Amazon Location Service pricing\n page.

", + "smithy.api#documentation": "

Specifies the pricing plan for your place index resource.

\n

For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

", "smithy.api#required": {} } }, @@ -1511,7 +1511,7 @@ "DataSource": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

Specifies the data provider of traffic and road network data.

\n \n

This field is case-sensitive. Enter the valid values as shown. For example,\n entering HERE returns an error.

\n
\n

Valid values include:

\n \n

For additional information , see Data\n providers on the Amazon Location Service Developer Guide.

", + "smithy.api#documentation": "

Specifies the data provider of traffic and road network data.

\n \n

This field is case-sensitive. Enter the valid values as shown. For example,\n entering HERE returns an error. Route calculators that use Esri as a data source \n only calculate routes that are shorter than 400 km.

\n
\n

Valid values include:

\n \n

For additional information , see Data\n providers on the Amazon Location Service Developer Guide.

", "smithy.api#required": {} } }, @@ -1613,7 +1613,7 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

Specifies the pricing plan for the tracker resource.

\n

For additional details and restrictions on each pricing plan option, see the Amazon Location Service pricing\n page.

", + "smithy.api#documentation": "

Specifies the pricing plan for the tracker resource.

\n

For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

", "smithy.api#required": {} } }, @@ -1626,7 +1626,7 @@ "PricingPlanDataSource": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

Specifies the data provider for the tracker resource.

\n \n

For more information about Data Providers, and Pricing plans, see the Amazon Location\n Service product page.

\n\t \n\t

Amazon Location Service only uses PricingPlanDataSource to calculate billing for your tracker resource. Your data will not be shared with the data provider, and will remain in your AWS account or Region unless you move it.

\n\t
\n

Valid Values: Esri | Here\n

" + "smithy.api#documentation": "

Specifies the data provider for the tracker resource.

\n \n

For more information about Data Providers, and Pricing plans, see the Amazon Location\n Service product page.

\n\t \n\t

Amazon Location Service only uses PricingPlanDataSource to calculate billing for your tracker resource. Your data will not be shared with the data provider, and will remain in your AWS account or Region unless you move it.

\n\t
\n

Valid values: Esri | Here\n

" } }, "Description": { @@ -1640,6 +1640,12 @@ "traits": { "smithy.api#documentation": "

Applies one or more tags to the tracker resource. A tag is a key-value pair helps\n manage, identify, search, and filter your resources by labelling them.

\n

Format: \"key\" : \"value\"\n

\n

Restrictions:

\n " } + }, + "PositionFiltering": { + "target": "com.amazonaws.location#PositionFiltering", + "traits": { + "smithy.api#documentation": "

Specifies the position filtering for the tracker resource.

\n

Valid values:

\n \n

This field is optional. If not specified, the default value is TimeBased.

" + } } } }, @@ -2147,7 +2153,7 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

The pricing plan selected for the specified map resource.

\n\n

For additional details and restrictions on each pricing plan option, see the Amazon Location Service pricing\n page.

", + "smithy.api#documentation": "

The pricing plan selected for the specified map resource.

\n\n

For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

", "smithy.api#required": {} } }, @@ -2266,7 +2272,7 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

The pricing plan selected for the specified place index resource.

\n

For additional details and restrictions on each pricing plan option, see the Amazon Location Service pricing\n page.

", + "smithy.api#documentation": "

The pricing plan selected for the specified place index resource.

\n

For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

", "smithy.api#required": {} } }, @@ -2294,7 +2300,7 @@ "DataSource": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The data provider of geospatial data. Indicates one of the available providers:

\n \n

For additional details on data providers, see the Amazon Location Service data providers\n page.

", + "smithy.api#documentation": "

The data provider of geospatial data. Indicates one of the available providers:

\n \n

For additional details on data providers, see Amazon Location Service data providers.

", "smithy.api#required": {} } }, @@ -2504,7 +2510,7 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

The pricing plan selected for the specified tracker resource.

\n

For additional details and restrictions on each pricing plan option, see the Amazon Location Service pricing\n page.

", + "smithy.api#documentation": "

The pricing plan selected for the specified tracker resource.

\n

For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

", "smithy.api#required": {} } }, @@ -2539,6 +2545,12 @@ "traits": { "smithy.api#documentation": "

A key identifier for an AWS KMS customer managed key assigned to the Amazon Location resource.

" } + }, + "PositionFiltering": { + "target": "com.amazonaws.location#PositionFiltering", + "traits": { + "smithy.api#documentation": "

The position filtering method of the tracker resource.

" + } } } }, @@ -3142,7 +3154,7 @@ "FontStack": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

A comma-separated list of fonts to load glyphs from in order of preference. For\n example, Noto Sans Regular, Arial Unicode.

\n

Valid fonts for Esri styles:

\n \n

Valid fonts for HERE Technologies styles:

\n ", + "smithy.api#documentation": "

A comma-separated list of fonts to load glyphs from in order of preference. For\n example, Noto Sans Regular, Arial Unicode.

\n

Valid fonts stacks for Esri styles:

\n \n

Valid font stacks for HERE Technologies styles:

\n ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -4097,7 +4109,7 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

The pricing plan for the specified map resource.

\n

For additional details and restrictions on each pricing plan option, see the Amazon Location Service pricing\n page.

", + "smithy.api#documentation": "

The pricing plan for the specified map resource.

\n

For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

", "smithy.api#required": {} } }, @@ -4226,14 +4238,14 @@ "DataSource": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The data provider of geospatial data. Indicates one of the available providers:

\n \n

For additional details on data providers, see the Amazon Location Service data providers page.

", + "smithy.api#documentation": "

The data provider of geospatial data. Indicates one of the available providers:

\n \n

For additional details on data providers, see Amazon Location Service data providers.

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

The pricing plan for the specified place index resource.

\n

For additional details and restrictions on each pricing plan option, see the Amazon Location Service pricing\n page.

", + "smithy.api#documentation": "

The pricing plan for the specified place index resource.

\n

For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

", "smithy.api#required": {} } }, @@ -4651,7 +4663,7 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

The pricing plan for the specified tracker resource.

\n

For additional details and restrictions on each pricing plan option, see the Amazon Location Service pricing\n page.

", + "smithy.api#documentation": "

The pricing plan for the specified tracker resource.

\n

For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

", "smithy.api#required": {} } }, @@ -4731,7 +4743,7 @@ "Style": { "target": "com.amazonaws.location#MapStyle", "traits": { - "smithy.api#documentation": "

Specifies the map style selected from an available data provider. For additional\n information on each map style and to preview each map style, see Esri map\n styles and HERE map\n styles.

\n

Valid Esri styles:

\n \n

Valid HERE\n Technologies styles:

\n ", + "smithy.api#documentation": "

Specifies the map style selected from an available data provider.

\n

Valid Esri map styles:

\n \n

Valid HERE\n Technologies map styles:

\n ", "smithy.api#required": {} } } @@ -4943,6 +4955,21 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.location#PositionFiltering": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "TimeBased", + "documentation": "Filtering device position updates based on time" + }, + { + "value": "DistanceBased", + "documentation": "Filtering device position updates based on distance" + } + ] + } + }, "com.amazonaws.location#PricingPlan": { "type": "string", "traits": { @@ -5273,7 +5300,7 @@ "DataSource": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The data provider of geospatial data. Indicates one of the available providers:

\n \n

For additional details on data providers, see the Amazon Location Service data providers page.

", + "smithy.api#documentation": "

The data provider of geospatial data. Indicates one of the available providers:

\n \n

For additional details on data providers, see Amazon Location Service data providers.

", "smithy.api#required": {} } } @@ -5432,7 +5459,7 @@ "DataSource": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The data provider of geospatial data. Indicates one of the available providers:

\n \n

For additional details on data providers, see the Amazon Location Service data providers page.

", + "smithy.api#documentation": "

The data provider of geospatial data. Indicates one of the available providers:

\n \n

For additional details on data providers, see Amazon Location Service data providers.

", "smithy.api#required": {} } } @@ -6297,6 +6324,12 @@ "traits": { "smithy.api#documentation": "

Updates the description for the tracker resource.

" } + }, + "PositionFiltering": { + "target": "com.amazonaws.location#PositionFiltering", + "traits": { + "smithy.api#documentation": "

Updates the position filtering for the tracker resource.

\n

Valid values:

\n " + } } } }, diff --git a/codegen/sdk-codegen/aws-models/mediaconvert.2017-08-29.json b/codegen/sdk-codegen/aws-models/mediaconvert.2017-08-29.json index f4dc0df43b9..9f934908d2c 100644 --- a/codegen/sdk-codegen/aws-models/mediaconvert.2017-08-29.json +++ b/codegen/sdk-codegen/aws-models/mediaconvert.2017-08-29.json @@ -4830,6 +4830,51 @@ "type": "structure", "members": {} }, + "com.amazonaws.mediaconvert#DeletePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.mediaconvert#DeletePolicyRequest" + }, + "output": { + "target": "com.amazonaws.mediaconvert#DeletePolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.mediaconvert#BadRequestException" + }, + { + "target": "com.amazonaws.mediaconvert#ConflictException" + }, + { + "target": "com.amazonaws.mediaconvert#ForbiddenException" + }, + { + "target": "com.amazonaws.mediaconvert#InternalServerErrorException" + }, + { + "target": "com.amazonaws.mediaconvert#NotFoundException" + }, + { + "target": "com.amazonaws.mediaconvert#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Permanently delete a policy that you created.", + "smithy.api#http": { + "method": "DELETE", + "uri": "/2017-08-29/policy", + "code": 200 + } + } + }, + "com.amazonaws.mediaconvert#DeletePolicyRequest": { + "type": "structure", + "members": {} + }, + "com.amazonaws.mediaconvert#DeletePolicyResponse": { + "type": "structure", + "members": {} + }, "com.amazonaws.mediaconvert#DeletePreset": { "type": "operation", "input": { @@ -7042,6 +7087,59 @@ } } }, + "com.amazonaws.mediaconvert#GetPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.mediaconvert#GetPolicyRequest" + }, + "output": { + "target": "com.amazonaws.mediaconvert#GetPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.mediaconvert#BadRequestException" + }, + { + "target": "com.amazonaws.mediaconvert#ConflictException" + }, + { + "target": "com.amazonaws.mediaconvert#ForbiddenException" + }, + { + "target": "com.amazonaws.mediaconvert#InternalServerErrorException" + }, + { + "target": "com.amazonaws.mediaconvert#NotFoundException" + }, + { + "target": "com.amazonaws.mediaconvert#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Retrieve the JSON for your policy.", + "smithy.api#http": { + "method": "GET", + "uri": "/2017-08-29/policy", + "code": 200 + } + } + }, + "com.amazonaws.mediaconvert#GetPolicyRequest": { + "type": "structure", + "members": {} + }, + "com.amazonaws.mediaconvert#GetPolicyResponse": { + "type": "structure", + "members": { + "Policy": { + "target": "com.amazonaws.mediaconvert#Policy", + "traits": { + "smithy.api#documentation": "A policy configures behavior that you allow or disallow for your account. For information about MediaConvert policies, see the user guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html", + "smithy.api#jsonName": "policy" + } + } + } + }, "com.amazonaws.mediaconvert#GetPreset": { "type": "operation", "input": { @@ -10201,6 +10299,22 @@ ] } }, + "com.amazonaws.mediaconvert#InputPolicy": { + "type": "string", + "traits": { + "smithy.api#documentation": "An input policy allows or disallows a job you submit to run based on the conditions that you specify.", + "smithy.api#enum": [ + { + "value": "ALLOWED", + "name": "ALLOWED" + }, + { + "value": "DISALLOWED", + "name": "DISALLOWED" + } + ] + } + }, "com.amazonaws.mediaconvert#InputPsiControl": { "type": "string", "traits": { @@ -13198,6 +13312,9 @@ { "target": "com.amazonaws.mediaconvert#DeleteJobTemplate" }, + { + "target": "com.amazonaws.mediaconvert#DeletePolicy" + }, { "target": "com.amazonaws.mediaconvert#DeletePreset" }, @@ -13216,6 +13333,9 @@ { "target": "com.amazonaws.mediaconvert#GetJobTemplate" }, + { + "target": "com.amazonaws.mediaconvert#GetPolicy" + }, { "target": "com.amazonaws.mediaconvert#GetPreset" }, @@ -13237,6 +13357,9 @@ { "target": "com.amazonaws.mediaconvert#ListTagsForResource" }, + { + "target": "com.amazonaws.mediaconvert#PutPolicy" + }, { "target": "com.amazonaws.mediaconvert#TagResource" }, @@ -15401,6 +15524,35 @@ "smithy.api#documentation": "If you work with a third party video watermarking partner, use the group of settings that correspond with your watermarking partner to include watermarks in your output." } }, + "com.amazonaws.mediaconvert#Policy": { + "type": "structure", + "members": { + "HttpInputs": { + "target": "com.amazonaws.mediaconvert#InputPolicy", + "traits": { + "smithy.api#documentation": "Allow or disallow jobs that specify HTTP inputs.", + "smithy.api#jsonName": "httpInputs" + } + }, + "HttpsInputs": { + "target": "com.amazonaws.mediaconvert#InputPolicy", + "traits": { + "smithy.api#documentation": "Allow or disallow jobs that specify HTTPS inputs.", + "smithy.api#jsonName": "httpsInputs" + } + }, + "S3Inputs": { + "target": "com.amazonaws.mediaconvert#InputPolicy", + "traits": { + "smithy.api#documentation": "Allow or disallow jobs that specify Amazon S3 inputs.", + "smithy.api#jsonName": "s3Inputs" + } + } + }, + "traits": { + "smithy.api#documentation": "A policy configures behavior that you allow or disallow for your account. For information about MediaConvert policies, see the user guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html" + } + }, "com.amazonaws.mediaconvert#Preset": { "type": "structure", "members": { @@ -15814,6 +15966,68 @@ ] } }, + "com.amazonaws.mediaconvert#PutPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.mediaconvert#PutPolicyRequest" + }, + "output": { + "target": "com.amazonaws.mediaconvert#PutPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.mediaconvert#BadRequestException" + }, + { + "target": "com.amazonaws.mediaconvert#ConflictException" + }, + { + "target": "com.amazonaws.mediaconvert#ForbiddenException" + }, + { + "target": "com.amazonaws.mediaconvert#InternalServerErrorException" + }, + { + "target": "com.amazonaws.mediaconvert#NotFoundException" + }, + { + "target": "com.amazonaws.mediaconvert#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Create or change your policy. For more information about policies, see the user guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html", + "smithy.api#http": { + "method": "PUT", + "uri": "/2017-08-29/policy", + "code": 200 + } + } + }, + "com.amazonaws.mediaconvert#PutPolicyRequest": { + "type": "structure", + "members": { + "Policy": { + "target": "com.amazonaws.mediaconvert#Policy", + "traits": { + "smithy.api#documentation": "A policy configures behavior that you allow or disallow for your account. For information about MediaConvert policies, see the user guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html", + "smithy.api#jsonName": "policy", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.mediaconvert#PutPolicyResponse": { + "type": "structure", + "members": { + "Policy": { + "target": "com.amazonaws.mediaconvert#Policy", + "traits": { + "smithy.api#documentation": "A policy configures behavior that you allow or disallow for your account. For information about MediaConvert policies, see the user guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html", + "smithy.api#jsonName": "policy" + } + } + } + }, "com.amazonaws.mediaconvert#Queue": { "type": "structure", "members": { diff --git a/codegen/sdk-codegen/aws-models/medialive.2017-10-14.json b/codegen/sdk-codegen/aws-models/medialive.2017-10-14.json index 83b665715f3..7fc428af15e 100644 --- a/codegen/sdk-codegen/aws-models/medialive.2017-10-14.json +++ b/codegen/sdk-codegen/aws-models/medialive.2017-10-14.json @@ -744,6 +744,13 @@ "smithy.api#jsonName": "audioTypeControl" } }, + "AudioWatermarkingSettings": { + "target": "com.amazonaws.medialive#AudioWatermarkSettings", + "traits": { + "smithy.api#documentation": "Settings to configure one or more solutions that insert audio watermarks in the audio encode", + "smithy.api#jsonName": "audioWatermarkingSettings" + } + }, "CodecSettings": { "target": "com.amazonaws.medialive#AudioCodecSettings", "traits": { @@ -1170,6 +1177,21 @@ ] } }, + "com.amazonaws.medialive#AudioWatermarkSettings": { + "type": "structure", + "members": { + "NielsenWatermarksSettings": { + "target": "com.amazonaws.medialive#NielsenWatermarksSettings", + "traits": { + "smithy.api#documentation": "Settings to configure Nielsen Watermarks in the audio encode", + "smithy.api#jsonName": "nielsenWatermarksSettings" + } + } + }, + "traits": { + "smithy.api#documentation": "Audio Watermark Settings" + } + }, "com.amazonaws.medialive#AuthenticationScheme": { "type": "string", "traits": { @@ -2871,7 +2893,7 @@ "Vpc": { "target": "com.amazonaws.medialive#VpcOutputSettingsDescription", "traits": { - "smithy.api#documentation": "Settings for VPC output", + "smithy.api#documentation": "Settings for any VPC outputs.", "smithy.api#jsonName": "vpc" } } @@ -2880,6 +2902,71 @@ "smithy.api#documentation": "Placeholder documentation for ChannelSummary" } }, + "com.amazonaws.medialive#ClaimDevice": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#ClaimDeviceRequest" + }, + "output": { + "target": "com.amazonaws.medialive#ClaimDeviceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" + }, + { + "target": "com.amazonaws.medialive#BadRequestException" + }, + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + }, + { + "target": "com.amazonaws.medialive#UnprocessableEntityException" + } + ], + "traits": { + "smithy.api#documentation": "Send a request to claim an AWS Elemental device that you have purchased from a third-party vendor. After the request succeeds, you will own the device.", + "smithy.api#http": { + "method": "POST", + "uri": "/prod/claimDevice", + "code": 200 + } + } + }, + "com.amazonaws.medialive#ClaimDeviceRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The id of the device you want to claim.", + "smithy.api#jsonName": "id" + } + } + }, + "traits": { + "smithy.api#documentation": "A request to claim an AWS Elemental device that you have purchased from a third-party vendor." + } + }, + "com.amazonaws.medialive#ClaimDeviceResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Placeholder documentation for ClaimDeviceResponse" + } + }, "com.amazonaws.medialive#ColorSpacePassthroughSettings": { "type": "structure", "members": {}, @@ -3048,7 +3135,7 @@ "Vpc": { "target": "com.amazonaws.medialive#VpcOutputSettings", "traits": { - "smithy.api#documentation": "Settings for VPC output", + "smithy.api#documentation": "Settings for the VPC outputs", "smithy.api#jsonName": "vpc" } } @@ -5278,7 +5365,7 @@ "InputSourceType": { "target": "com.amazonaws.medialive#InputSourceType", "traits": { - "smithy.api#documentation": "Certain pull input sources can be dynamic, meaning that they can have their URL's dynamically changes\nduring input switch actions. Presently, this functionality only works with MP4_FILE inputs.", + "smithy.api#documentation": "Certain pull input sources can be dynamic, meaning that they can have their URL's dynamically changes\nduring input switch actions. Presently, this functionality only works with MP4_FILE and TS_FILE inputs.", "smithy.api#jsonName": "inputSourceType" } }, @@ -10476,7 +10563,7 @@ "InputSourceType": { "target": "com.amazonaws.medialive#InputSourceType", "traits": { - "smithy.api#documentation": "Certain pull input sources can be dynamic, meaning that they can have their URL's dynamically changes\nduring input switch actions. Presently, this functionality only works with MP4_FILE inputs.", + "smithy.api#documentation": "Certain pull input sources can be dynamic, meaning that they can have their URL's dynamically changes\nduring input switch actions. Presently, this functionality only works with MP4_FILE and TS_FILE inputs.", "smithy.api#jsonName": "inputSourceType" } }, @@ -11725,7 +11812,7 @@ "com.amazonaws.medialive#InputSourceType": { "type": "string", "traits": { - "smithy.api#documentation": "There are two types of input sources, static and dynamic. If an input source is dynamic you can\nchange the source url of the input dynamically using an input switch action. However, the only input type\nto support a dynamic url at this time is MP4_FILE. By default all input sources are static.", + "smithy.api#documentation": "There are two types of input sources, static and dynamic. If an input source is dynamic you can\nchange the source url of the input dynamically using an input switch action. Currently, two input types\nsupport a dynamic url at this time, MP4_FILE and TS_FILE. By default all input sources are static.", "smithy.api#enum": [ { "value": "STATIC", @@ -11844,7 +11931,7 @@ "com.amazonaws.medialive#InputType": { "type": "string", "traits": { - "smithy.api#documentation": "Placeholder documentation for InputType", + "smithy.api#documentation": "The different types of inputs that AWS Elemental MediaLive supports.", "smithy.api#enum": [ { "value": "UDP_PUSH", @@ -11881,6 +11968,10 @@ { "value": "AWS_CDI", "name": "AWS_CDI" + }, + { + "value": "TS_FILE", + "name": "TS_FILE" } ] } @@ -13893,6 +13984,9 @@ { "target": "com.amazonaws.medialive#CancelInputDeviceTransfer" }, + { + "target": "com.amazonaws.medialive#ClaimDevice" + }, { "target": "com.amazonaws.medialive#CreateChannel" }, @@ -15338,6 +15432,38 @@ "smithy.api#documentation": "Network source to transcode. Must be accessible to the Elemental Live node that is running the live event through a network connection." } }, + "com.amazonaws.medialive#NielsenCBET": { + "type": "structure", + "members": { + "CbetCheckDigitString": { + "target": "com.amazonaws.medialive#__stringMin2Max2", + "traits": { + "smithy.api#documentation": "Enter the CBET check digits to use in the watermark.", + "smithy.api#jsonName": "cbetCheckDigitString", + "smithy.api#required": {} + } + }, + "CbetStepaside": { + "target": "com.amazonaws.medialive#NielsenWatermarksCbetStepaside", + "traits": { + "smithy.api#documentation": "Determines the method of CBET insertion mode when prior encoding is detected on the same layer.", + "smithy.api#jsonName": "cbetStepaside", + "smithy.api#required": {} + } + }, + "Csid": { + "target": "com.amazonaws.medialive#__stringMin1Max7", + "traits": { + "smithy.api#documentation": "Enter the CBET Source ID (CSID) to use in the watermark", + "smithy.api#jsonName": "csid", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Nielsen CBET" + } + }, "com.amazonaws.medialive#NielsenConfiguration": { "type": "structure", "members": { @@ -15360,6 +15486,30 @@ "smithy.api#documentation": "Nielsen Configuration" } }, + "com.amazonaws.medialive#NielsenNaesIiNw": { + "type": "structure", + "members": { + "CheckDigitString": { + "target": "com.amazonaws.medialive#__stringMin2Max2", + "traits": { + "smithy.api#documentation": "Enter the check digit string for the watermark", + "smithy.api#jsonName": "checkDigitString", + "smithy.api#required": {} + } + }, + "Sid": { + "target": "com.amazonaws.medialive#__doubleMin1Max65535", + "traits": { + "smithy.api#documentation": "Enter the Nielsen Source ID (SID) to include in the watermark", + "smithy.api#jsonName": "sid", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Nielsen Naes Ii Nw" + } + }, "com.amazonaws.medialive#NielsenPcmToId3TaggingState": { "type": "string", "traits": { @@ -15376,6 +15526,67 @@ ] } }, + "com.amazonaws.medialive#NielsenWatermarksCbetStepaside": { + "type": "string", + "traits": { + "smithy.api#documentation": "Nielsen Watermarks Cbet Stepaside", + "smithy.api#enum": [ + { + "value": "DISABLED", + "name": "DISABLED" + }, + { + "value": "ENABLED", + "name": "ENABLED" + } + ] + } + }, + "com.amazonaws.medialive#NielsenWatermarksDistributionTypes": { + "type": "string", + "traits": { + "smithy.api#documentation": "Nielsen Watermarks Distribution Types", + "smithy.api#enum": [ + { + "value": "FINAL_DISTRIBUTOR", + "name": "FINAL_DISTRIBUTOR" + }, + { + "value": "PROGRAM_CONTENT", + "name": "PROGRAM_CONTENT" + } + ] + } + }, + "com.amazonaws.medialive#NielsenWatermarksSettings": { + "type": "structure", + "members": { + "NielsenCbetSettings": { + "target": "com.amazonaws.medialive#NielsenCBET", + "traits": { + "smithy.api#documentation": "Complete these fields only if you want to insert watermarks of type Nielsen CBET", + "smithy.api#jsonName": "nielsenCbetSettings" + } + }, + "NielsenDistributionType": { + "target": "com.amazonaws.medialive#NielsenWatermarksDistributionTypes", + "traits": { + "smithy.api#documentation": "Choose the distribution types that you want to assign to the watermarks:\n- PROGRAM_CONTENT\n- FINAL_DISTRIBUTOR", + "smithy.api#jsonName": "nielsenDistributionType" + } + }, + "NielsenNaesIiNwSettings": { + "target": "com.amazonaws.medialive#NielsenNaesIiNw", + "traits": { + "smithy.api#documentation": "Complete these fields only if you want to insert watermarks of type Nielsen NAES II (N2) and Nielsen NAES VI (NW).", + "smithy.api#jsonName": "nielsenNaesIiNwSettings" + } + } + }, + "traits": { + "smithy.api#documentation": "Nielsen Watermarks Settings" + } + }, "com.amazonaws.medialive#NotFoundException": { "type": "structure", "members": { @@ -20194,6 +20405,12 @@ "smithy.api#documentation": "Placeholder documentation for __doubleMin1" } }, + "com.amazonaws.medialive#__doubleMin1Max65535": { + "type": "double", + "traits": { + "smithy.api#documentation": "Placeholder documentation for __doubleMin1Max65535" + } + }, "com.amazonaws.medialive#__doubleMinNegative59Max0": { "type": "double", "traits": { @@ -21262,6 +21479,26 @@ } } }, + "com.amazonaws.medialive#__stringMin1Max7": { + "type": "string", + "traits": { + "smithy.api#documentation": "Placeholder documentation for __stringMin1Max7", + "smithy.api#length": { + "min": 1, + "max": 7 + } + } + }, + "com.amazonaws.medialive#__stringMin2Max2": { + "type": "string", + "traits": { + "smithy.api#documentation": "Placeholder documentation for __stringMin2Max2", + "smithy.api#length": { + "min": 2, + "max": 2 + } + } + }, "com.amazonaws.medialive#__stringMin32Max32": { "type": "string", "traits": { diff --git a/codegen/sdk-codegen/aws-models/sagemaker.2017-07-24.json b/codegen/sdk-codegen/aws-models/sagemaker.2017-07-24.json index cf019199a40..ea61caa6a86 100644 --- a/codegen/sdk-codegen/aws-models/sagemaker.2017-07-24.json +++ b/codegen/sdk-codegen/aws-models/sagemaker.2017-07-24.json @@ -402,7 +402,6 @@ "TrainingInputMode": { "target": "com.amazonaws.sagemaker#TrainingInputMode", "traits": { - "smithy.api#documentation": "

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

\n

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

\n

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

", "smithy.api#required": {} } }, @@ -1937,13 +1936,13 @@ "MaxRuntimePerTrainingJobInSeconds": { "target": "com.amazonaws.sagemaker#MaxRuntimePerTrainingJobInSeconds", "traits": { - "smithy.api#documentation": "

The maximum time, in seconds, a training job is allowed to run as part of an AutoML\n job.

" + "smithy.api#documentation": "

The maximum time, in seconds, that each training job is allowed to run as part of a\n hyperparameter tuning job. For more information, see the used by the action.

" } }, "MaxAutoMLJobRuntimeInSeconds": { "target": "com.amazonaws.sagemaker#MaxAutoMLJobRuntimeInSeconds", "traits": { - "smithy.api#documentation": "

The maximum runtime, in seconds, an AutoML job has to complete.

" + "smithy.api#documentation": "

The maximum runtime, in seconds, an AutoML job has to complete.

\n

If an AutoML job exceeds the maximum runtime, the job is stopped automatically and its\n processing is ended gracefully. The AutoML job identifies the best model whose training was\n completed and marks it as the best-performing model. Any unfinished steps of the job, such\n as automatic one-click Autopilot model deployment, will not be completed.

" } } }, @@ -4729,7 +4728,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a Domain used by Amazon SageMaker Studio. A domain consists of an associated\n Amazon Elastic File System (EFS) volume, a list of authorized users, and a variety of security, application,\n policy, and Amazon Virtual Private Cloud (VPC) configurations. An Amazon Web Services account is limited to one domain per region.\n Users within a domain can share notebook files and other artifacts with each other.

\n\n

\n EFS storage\n

\n

When a domain is created, an EFS volume is created for use by all of the users within the\n domain. Each user receives a private home directory within the EFS volume for notebooks,\n Git repositories, and data files.

\n

SageMaker uses the Amazon Web Services Key Management Service (Amazon Web Services KMS) to encrypt the EFS volume attached to the domain with\n an Amazon Web Services managed key by default. For more control, you can specify a\n customer managed key. For more information, see\n Protect Data at\n Rest Using Encryption.

\n\n

\n VPC configuration\n

\n

All SageMaker Studio traffic between the domain and the EFS volume is through the specified\n VPC and subnets. For other Studio traffic, you can specify the AppNetworkAccessType\n parameter. AppNetworkAccessType corresponds to the network access type that you\n choose when you onboard to Studio. The following options are available:

\n \n \n

NFS traffic over TCP on port 2049 needs to be allowed in both inbound and outbound rules\n in order to launch a SageMaker Studio app successfully.

\n
\n

For more information, see\n Connect\n SageMaker Studio Notebooks to Resources in a VPC.

" + "smithy.api#documentation": "

Creates a Domain used by Amazon SageMaker Studio. A domain consists of an associated\n Amazon Elastic File System (EFS) volume, a list of authorized users, and a variety of security, application,\n policy, and Amazon Virtual Private Cloud (VPC) configurations. An Amazon Web Services account is limited to one domain per region.\n Users within a domain can share notebook files and other artifacts with each other.

\n\n

\n EFS storage\n

\n

When a domain is created, an EFS volume is created for use by all of the users within the\n domain. Each user receives a private home directory within the EFS volume for notebooks,\n Git repositories, and data files.

\n

SageMaker uses the Amazon Web Services Key Management Service (Amazon Web Services KMS) to encrypt the EFS volume attached to the domain with\n an Amazon Web Services managed key by default. For more control, you can specify a\n customer managed key. For more information, see\n Protect Data at\n Rest Using Encryption.

\n\n

\n VPC configuration\n

\n

All SageMaker Studio traffic between the domain and the EFS volume is through the specified\n VPC and subnets. For other Studio traffic, you can specify the AppNetworkAccessType\n parameter. AppNetworkAccessType corresponds to the network access type that you\n choose when you onboard to Studio. The following options are available:

\n \n \n

NFS traffic over TCP on port 2049 needs to be allowed in both inbound and outbound rules\n in order to launch a SageMaker Studio app successfully.

\n
\n

For more information, see\n Connect\n SageMaker Studio Notebooks to Resources in a VPC.

" } }, "com.amazonaws.sagemaker#CreateDomainRequest": { @@ -4903,7 +4902,7 @@ } ], "traits": { - "smithy.api#documentation": "

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

\n

Use this API to deploy models using Amazon SageMaker hosting services.

\n

For an example that calls this method when deploying a model to Amazon SageMaker hosting services,\n see the Create Endpoint example notebook.\n

\n \n

You must not delete an EndpointConfig that is in use by an endpoint\n that is live or while the UpdateEndpoint or CreateEndpoint\n operations are being performed on the endpoint. To update an endpoint, you must\n create a new EndpointConfig.

\n
\n

The endpoint name must be unique within an Amazon Web Services Region in your Amazon Web Services account.

\n

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

\n \n \n

When you call CreateEndpoint, a load call is made to DynamoDB to\n verify that your endpoint configuration exists. When you read data from a DynamoDB\n table supporting \n Eventually Consistent Reads\n , the response might not\n reflect the results of a recently completed write operation. The response might\n include some stale data. If the dependent entities are not yet in DynamoDB, this\n causes a validation error. If you repeat your read request after a short time, the\n response should return the latest data. So retry logic is recommended to handle\n these possible issues. We also recommend that customers call DescribeEndpointConfig before calling CreateEndpoint to minimize the potential impact of a DynamoDB eventually consistent read.

\n
\n

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

\n

If any of the models hosted at this endpoint get model data from an Amazon S3 location,\n Amazon SageMaker uses Amazon Web Services Security Token Service to download model artifacts from the S3 path you\n provided. Amazon Web Services STS is activated in your IAM user account by default. If you previously\n deactivated Amazon Web Services STS for a region, you need to reactivate Amazon Web Services STS for that region. For\n more information, see Activating and\n Deactivating Amazon Web Services STS in an Amazon Web Services Region in the Amazon Web Services Identity and Access Management User\n Guide.

\n \n

To add the IAM role policies for using this API operation, go to the IAM console, and choose\n Roles in the left navigation pane. Search the IAM role that you want to grant\n access to use the CreateEndpoint and CreateEndpointConfig API operations, add the following policies to\n the role.

\n \n\n
" + "smithy.api#documentation": "

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

\n

Use this API to deploy models using Amazon SageMaker hosting services.

\n

For an example that calls this method when deploying a model to Amazon SageMaker hosting services,\n see the Create Endpoint example notebook.\n

\n \n

You must not delete an EndpointConfig that is in use by an endpoint\n that is live or while the UpdateEndpoint or CreateEndpoint\n operations are being performed on the endpoint. To update an endpoint, you must\n create a new EndpointConfig.

\n
\n

The endpoint name must be unique within an Amazon Web Services Region in your Amazon Web Services account.

\n

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

\n \n \n

When you call CreateEndpoint, a load call is made to DynamoDB to\n verify that your endpoint configuration exists. When you read data from a DynamoDB\n table supporting \n Eventually Consistent Reads\n , the response might not\n reflect the results of a recently completed write operation. The response might\n include some stale data. If the dependent entities are not yet in DynamoDB, this\n causes a validation error. If you repeat your read request after a short time, the\n response should return the latest data. So retry logic is recommended to handle\n these possible issues. We also recommend that customers call DescribeEndpointConfig before calling CreateEndpoint to minimize the potential impact of a DynamoDB eventually consistent read.

\n
\n

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

\n

If any of the models hosted at this endpoint get model data from an Amazon S3 location,\n Amazon SageMaker uses Amazon Web Services Security Token Service to download model artifacts from the S3 path you\n provided. Amazon Web Services STS is activated in your IAM user account by default. If you previously\n deactivated Amazon Web Services STS for a region, you need to reactivate Amazon Web Services STS for that region. For\n more information, see Activating and\n Deactivating Amazon Web Services STS in an Amazon Web Services Region in the Amazon Web Services Identity and Access Management User\n Guide.

\n \n

To add the IAM role policies for using this API operation, go to the IAM console, and choose\n Roles in the left navigation pane. Search the IAM role that you want to grant\n access to use the CreateEndpoint and CreateEndpointConfig API operations, add the following policies to\n the role.

\n \n\n
" } }, "com.amazonaws.sagemaker#CreateEndpointConfig": { @@ -5130,7 +5129,7 @@ "OfflineStoreConfig": { "target": "com.amazonaws.sagemaker#OfflineStoreConfig", "traits": { - "smithy.api#documentation": "

Use this to configure an OfflineFeatureStore. This parameter allows you to\n specify:

\n \n

To learn more about this parameter, see OfflineStoreConfig.

" + "smithy.api#documentation": "

Use this to configure an OfflineFeatureStore. This parameter allows you to\n specify:

\n \n

To learn more about this parameter, see OfflineStoreConfig.

" } }, "RoleArn": { @@ -6481,7 +6480,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a URL for a specified UserProfile in a Domain. When accessed in a web browser,\n the user will be automatically signed in to Amazon SageMaker Studio, and granted access to all of\n the Apps and files associated with the Domain's Amazon Elastic File System (EFS) volume.\n This operation can only be called when the authentication mode equals IAM.\n

\n

The IAM role or user used to call this API defines the permissions to access the app. Once\n the presigned URL is created, no additional permission is required to access this URL. IAM\n authorization policies for this API are also enforced for every HTTP request and WebSocket\n frame that attempts to connect to the app.

\n

You can restrict access to this API and to the\n URL that it returns to a list of IP addresses, Amazon VPCs or Amazon VPC Endpoints that you specify. For more\n information, see Connect to SageMaker Studio Through an Interface VPC Endpoint\n .

\n \n

The URL that you get from a call to CreatePresignedDomainUrl has a default timeout of 5 minutes. You can configure this value using ExpiresInSeconds. If you try to use the URL after the timeout limit expires, you\n are directed to the Amazon Web Services console sign-in page.

\n
" + "smithy.api#documentation": "

Creates a URL for a specified UserProfile in a Domain. When accessed in a web browser,\n the user will be automatically signed in to Amazon SageMaker Studio, and granted access to all of\n the Apps and files associated with the Domain's Amazon Elastic File System (EFS) volume.\n This operation can only be called when the authentication mode equals IAM.\n

\n

The IAM role or user used to call this API defines the permissions to access the app. Once\n the presigned URL is created, no additional permission is required to access this URL. IAM\n authorization policies for this API are also enforced for every HTTP request and WebSocket\n frame that attempts to connect to the app.

\n

You can restrict access to this API and to the\n URL that it returns to a list of IP addresses, Amazon VPCs or Amazon VPC Endpoints that you specify. For more\n information, see Connect to SageMaker Studio Through an Interface VPC Endpoint\n .

\n \n

The URL that you get from a call to CreatePresignedDomainUrl has a default timeout of 5 minutes. You can configure this value using ExpiresInSeconds. If you try to use the URL after the timeout limit expires, you\n are directed to the Amazon Web Services console sign-in page.

\n
" } }, "com.amazonaws.sagemaker#CreatePresignedDomainUrlRequest": { @@ -7685,7 +7684,7 @@ "JoinSource": { "target": "com.amazonaws.sagemaker#JoinSource", "traits": { - "smithy.api#documentation": "

Specifies the source of the data to join with the transformed data. The valid values\n are None and Input. The default value is None,\n which specifies not to join the input with the transformed data. If you want the batch\n transform job to join the original input data with the transformed data, set\n JoinSource to Input. You can specify\n OutputFilter as an additional filter to select a portion of the joined\n dataset and store it in the output file.

\n

For JSON or JSONLines objects, such as a JSON array, Amazon SageMaker adds the transformed data to\n the input JSON object in an attribute called SageMakerOutput. The joined\n result for JSON must be a key-value pair object. If the input is not a key-value pair\n object, Amazon SageMaker creates a new JSON file. In the new JSON file, and the input data is stored\n under the SageMakerInput key and the results are stored in\n SageMakerOutput.

\n

For CSV data, Amazon SageMaker takes each row as a JSON array and joins the transformed data with\n the input by appending each transformed row to the end of the input. The joined data has\n the original input data followed by the transformed data and the output is a CSV\n file.

\n

For information on how joining in applied, see Workflow for Associating Inferences with Input Records.

" + "smithy.api#documentation": "

Specifies the source of the data to join with the transformed data. The valid values\n are None and Input. The default value is None,\n which specifies not to join the input with the transformed data. If you want the batch\n transform job to join the original input data with the transformed data, set\n JoinSource to Input. You can specify\n OutputFilter as an additional filter to select a portion of the joined\n dataset and store it in the output file.

\n

For JSON or JSONLines objects, such as a JSON array, SageMaker adds the transformed data to\n the input JSON object in an attribute called SageMakerOutput. The joined\n result for JSON must be a key-value pair object. If the input is not a key-value pair\n object, SageMaker creates a new JSON file. In the new JSON file, and the input data is stored\n under the SageMakerInput key and the results are stored in\n SageMakerOutput.

\n

For CSV data, SageMaker takes each row as a JSON array and joins the transformed data with\n the input by appending each transformed row to the end of the input. The joined data has\n the original input data followed by the transformed data and the output is a CSV\n file.

\n

For information on how joining in applied, see Workflow for Associating Inferences with Input Records.

" } } }, @@ -9642,7 +9641,7 @@ "LastUserActivityTimestamp": { "target": "com.amazonaws.sagemaker#Timestamp", "traits": { - "smithy.api#documentation": "

The timestamp of the last user's activity.

" + "smithy.api#documentation": "

The timestamp of the last user's activity. LastUserActivityTimestamp is also updated when SageMaker performs health checks without user activity. As a result, this value is set to the same value as LastHealthCheckTimestamp.

" } }, "CreationTime": { @@ -13910,7 +13909,7 @@ "BillableTimeInSeconds": { "target": "com.amazonaws.sagemaker#BillableTimeInSeconds", "traits": { - "smithy.api#documentation": "

The billable time in seconds. Billable time refers to the absolute wall-clock\n time.

\n

Multiply BillableTimeInSeconds by the number of instances\n (InstanceCount) in your training cluster to get the total compute time\n Amazon SageMaker will bill you if you run distributed training. The formula is as follows:\n BillableTimeInSeconds * InstanceCount .

\n

You can calculate the savings from using managed spot training using the formula\n (1 - BillableTimeInSeconds / TrainingTimeInSeconds) * 100. For example,\n if BillableTimeInSeconds is 100 and TrainingTimeInSeconds is\n 500, the savings is 80%.

" + "smithy.api#documentation": "

The billable time in seconds. Billable time refers to the absolute wall-clock\n time.

\n

Multiply BillableTimeInSeconds by the number of instances\n (InstanceCount) in your training cluster to get the total compute time\n SageMaker will bill you if you run distributed training. The formula is as follows:\n BillableTimeInSeconds * InstanceCount .

\n

You can calculate the savings from using managed spot training using the formula\n (1 - BillableTimeInSeconds / TrainingTimeInSeconds) * 100. For example,\n if BillableTimeInSeconds is 100 and TrainingTimeInSeconds is\n 500, the savings is 80%.

" } }, "DebugHookConfig": { @@ -15696,7 +15695,7 @@ "S3InputMode": { "target": "com.amazonaws.sagemaker#ProcessingS3InputMode", "traits": { - "smithy.api#documentation": "

Whether the Pipe or File is used as the input mode for\n transfering data for the monitoring job. Pipe mode is recommended for large\n datasets. File mode is useful for small files that fit in memory. Defaults to\n File.

" + "smithy.api#documentation": "

Whether the Pipe or File is used as the input mode for\n transferring data for the monitoring job. Pipe mode is recommended for large\n datasets. File mode is useful for small files that fit in memory. Defaults to\n File.

" } }, "S3DataDistributionType": { @@ -17514,7 +17513,6 @@ "TrainingInputMode": { "target": "com.amazonaws.sagemaker#TrainingInputMode", "traits": { - "smithy.api#documentation": "

The input mode that the algorithm supports:\n File\n or Pipe. In File input mode, Amazon SageMaker downloads the training data from\n Amazon S3 to the\n storage\n volume that is attached to the training instance and mounts the directory to the Docker\n volume for the training container. In Pipe input mode, Amazon SageMaker streams\n data directly from Amazon S3 to the container.

\n

If you specify File mode, make sure that\n you\n provision the storage volume that is attached to the training instance with enough\n capacity to accommodate the training data downloaded from Amazon S3, the model artifacts, and\n intermediate\n information.

\n

\n

For more information about input modes, see Algorithms.

", "smithy.api#required": {} } }, @@ -33862,7 +33860,7 @@ } }, "traits": { - "smithy.api#documentation": "

Specifies a limit to how long a model training job, model compilation job, or\n hyperparameter tuning job can run. It also specifies how long a managed Spot training\n job has to complete. When the job reaches the time limit, Amazon SageMaker ends the training or\n compilation job. Use this API to cap model training costs.

\n

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

\n

The training algorithms provided by Amazon SageMaker automatically save the intermediate results\n of a model training job when possible. This attempt to save artifacts is only a best\n effort case as model might not be in a state from which it can be saved. For example, if\n training has just started, the model might not be ready to save. When saved, this\n intermediate data is a valid model artifact. You can use it to create a model with\n CreateModel.

\n \n

The Neural Topic Model (NTM) currently does not support saving intermediate model\n artifacts. When training NTMs, make sure that the maximum runtime is sufficient for\n the training job to complete.

\n
" + "smithy.api#documentation": "

Specifies a limit to how long a model training job or model compilation job \n can run. It also specifies how long a managed spot training\n job has to complete. When the job reaches the time limit, Amazon SageMaker ends the training or\n compilation job. Use this API to cap model training costs.

\n

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

\n

The training algorithms provided by Amazon SageMaker automatically save the intermediate results\n of a model training job when possible. This attempt to save artifacts is only a best\n effort case as model might not be in a state from which it can be saved. For example, if\n training has just started, the model might not be ready to save. When saved, this\n intermediate data is a valid model artifact. You can use it to create a model with\n CreateModel.

\n \n

The Neural Topic Model (NTM) currently does not support saving intermediate model\n artifacts. When training NTMs, make sure that the maximum runtime is sufficient for\n the training job to complete.

\n
" } }, "com.amazonaws.sagemaker#String": { @@ -34155,7 +34153,7 @@ } }, "traits": { - "smithy.api#documentation": "

A tag object that consists of a key and an optional value, used to manage metadata\n for Amazon SageMaker Amazon Web Services resources.

\n

You can add tags to notebook instances, training jobs, hyperparameter tuning jobs,\n batch transform jobs, models, labeling jobs, work teams, endpoint configurations, and\n endpoints. For more information on adding tags to Amazon SageMaker resources, see AddTags.

\n

For more information on adding metadata to your Amazon Web Services resources with tagging, see\n Tagging Amazon Web Services\n resources. For advice on best practices for managing Amazon Web Services resources with\n tagging, see Tagging\n Best Practices: Implement an Effective Amazon Web Services Resource Tagging Strategy.

" + "smithy.api#documentation": "

A tag object that consists of a key and an optional value, used to manage metadata\n for SageMaker Amazon Web Services resources.

\n

You can add tags to notebook instances, training jobs, hyperparameter tuning jobs,\n batch transform jobs, models, labeling jobs, work teams, endpoint configurations, and\n endpoints. For more information on adding tags to SageMaker resources, see AddTags.

\n

For more information on adding metadata to your Amazon Web Services resources with tagging, see\n Tagging Amazon Web Services\n resources. For advice on best practices for managing Amazon Web Services resources with\n tagging, see Tagging\n Best Practices: Implement an Effective Amazon Web Services Resource Tagging Strategy.

" } }, "com.amazonaws.sagemaker#TagKey": { @@ -34691,6 +34689,7 @@ "com.amazonaws.sagemaker#TrainingInputMode": { "type": "string", "traits": { + "smithy.api#documentation": "

The training input mode that the algorithm supports. For more information about input modes, see\n Algorithms.

\n\n

\n Pipe mode\n

\n

If an algorithm supports Pipe mode, Amazon SageMaker streams data directly\n from Amazon S3 to the container.

\n\n

\n File mode\n

\n

If an algorithm supports File mode, SageMaker\n downloads the training data from S3 to the provisioned ML storage volume, and mounts the\n directory to the Docker volume for the training container.

\n

You must provision the ML storage volume with sufficient capacity\n to accommodate the data downloaded from S3. In addition to the training data, the ML\n storage volume also stores the output model. The algorithm container uses the ML storage\n volume to also store intermediate information, if any.

\n

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

\n\n

\n FastFile mode\n

\n

If an algorithm supports FastFile mode, SageMaker streams data directly\n from S3 to the container with no code changes, and provides file system access to\n the data. Users can author their training script to interact with these files as if\n they were stored on disk.

\n

\n FastFile mode works best when the data is read sequentially.\n Augmented manifest files aren't supported.\n The startup time is lower when there are fewer files in the S3 bucket provided.

", "smithy.api#enum": [ { "value": "Pipe", @@ -34699,6 +34698,10 @@ { "value": "File", "name": "FILE" + }, + { + "value": "FastFile", + "name": "FASTFILE" } ] } @@ -35114,7 +35117,6 @@ "TrainingInputMode": { "target": "com.amazonaws.sagemaker#TrainingInputMode", "traits": { - "smithy.api#documentation": "

The input mode used by the algorithm for the training job. For the input modes that\n Amazon SageMaker algorithms support, see Algorithms.

\n

If an algorithm supports the File input mode, Amazon SageMaker downloads the training\n data from S3 to the provisioned ML storage Volume, and mounts the directory to docker\n volume for training container. If an algorithm supports the Pipe input\n mode, Amazon SageMaker streams data directly from S3 to the container.

", "smithy.api#required": {} } }, diff --git a/codegen/sdk-codegen/aws-models/secretsmanager.2017-10-17.json b/codegen/sdk-codegen/aws-models/secretsmanager.2017-10-17.json index e86f08b7b53..0172190a2c8 100644 --- a/codegen/sdk-codegen/aws-models/secretsmanager.2017-10-17.json +++ b/codegen/sdk-codegen/aws-models/secretsmanager.2017-10-17.json @@ -84,7 +84,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

Specifies the secret to cancel a rotation request. You can specify either the Amazon\n Resource Name (ARN) or the friendly name of the secret.

\n \n

If you specify an ARN, we generally recommend that you specify a complete ARN. You can \n specify a partial ARN too—for example, if you don’t include the final hyphen and six random \n characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN \n match can work as long as it uniquely matches only one secret. However, if your secret has a \n name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six \n characters to the ARN) and you try to use that as a partial ARN, then those characters cause \n Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected \n results. To avoid this situation, we recommend that you don’t create secret names ending \n with a hyphen followed by six characters.

\n

If you specify an incomplete ARN without the random suffix, and instead provide the \n 'friendly name', you must not include the random suffix. If you do include the random suffix added by Secrets Manager, \n you receive either a ResourceNotFoundException or an AccessDeniedException error, depending on your permissions.

\n
", + "smithy.api#documentation": "

Specifies the secret to cancel a rotation request. You can specify either the Amazon\n Resource Name (ARN) or the friendly name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } } @@ -201,7 +201,7 @@ "SecretString": { "target": "com.amazonaws.secretsmanager#SecretStringType", "traits": { - "smithy.api#documentation": "

(Optional) Specifies text data that you want to encrypt and store in this new version of\n the secret.

\n

Either SecretString or SecretBinary must have a value, but not\n both. They cannot both be empty.

\n

If you create a secret by using the Secrets Manager console then Secrets Manager puts the protected\n secret text in only the SecretString parameter. The Secrets Manager console stores the\n information as a JSON structure of key/value pairs that the Lambda rotation function knows how\n to parse.

\n

For storing multiple values, we recommend that you use a JSON text string argument and\n specify key/value pairs. For information on how to format a JSON parameter for the various\n command line tool environments, see Using JSON for\n Parameters in the CLI User Guide. For example:

\n

\n {\"username\":\"bob\",\"password\":\"abc123xyz456\"}\n

\n

If your command-line tool or SDK requires quotation marks around the parameter, you should\n use single quotes to avoid confusion with the double quotes required in the JSON text.

" + "smithy.api#documentation": "

(Optional) Specifies text data that you want to encrypt and store in this new version of\n the secret.

\n

Either SecretString or SecretBinary must have a value, but not\n both. They cannot both be empty.

\n

If you create a secret by using the Secrets Manager console then Secrets Manager puts the protected\n secret text in only the SecretString parameter. The Secrets Manager console stores the\n information as a JSON structure of key/value pairs that the Lambda rotation function knows how\n to parse.

\n

For storing multiple values, we recommend that you use a JSON text \n string argument and specify key/value pairs. For more information, see Specifying parameter values for the Amazon Web Services CLI\n in the Amazon Web Services CLI User Guide.

" } }, "Tags": { @@ -300,7 +300,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

Specifies the secret that you want to delete the attached resource-based policy for. You\n can specify either the Amazon Resource Name (ARN) or the friendly name of the secret.

\n \n

If you specify an ARN, we generally recommend that you specify a complete ARN. You can \n specify a partial ARN too—for example, if you don’t include the final hyphen and six random \n characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN \n match can work as long as it uniquely matches only one secret. However, if your secret has a \n name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six \n characters to the ARN) and you try to use that as a partial ARN, then those characters cause \n Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected \n results. To avoid this situation, we recommend that you don’t create secret names ending \n with a hyphen followed by six characters.

\n

If you specify an incomplete ARN without the random suffix, and instead provide the \n 'friendly name', you must not include the random suffix. If you do include the random suffix added by Secrets Manager, \n you receive either a ResourceNotFoundException or an AccessDeniedException error, depending on your permissions.

\n
", + "smithy.api#documentation": "

Specifies the secret that you want to delete the attached resource-based policy for. You\n can specify either the Amazon Resource Name (ARN) or the friendly name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } } @@ -355,7 +355,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

Specifies the secret to delete. You can specify either the Amazon Resource Name (ARN) or\n the friendly name of the secret.

\n \n

If you specify an ARN, we generally recommend that you specify a complete ARN. You can \n specify a partial ARN too—for example, if you don’t include the final hyphen and six random \n characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN \n match can work as long as it uniquely matches only one secret. However, if your secret has a \n name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six \n characters to the ARN) and you try to use that as a partial ARN, then those characters cause \n Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected \n results. To avoid this situation, we recommend that you don’t create secret names ending \n with a hyphen followed by six characters.

\n

If you specify an incomplete ARN without the random suffix, and instead provide the \n 'friendly name', you must not include the random suffix. If you do include the random suffix added by Secrets Manager, \n you receive either a ResourceNotFoundException or an AccessDeniedException error, depending on your permissions.

\n
", + "smithy.api#documentation": "

Specifies the secret to delete. You can specify either the Amazon Resource Name (ARN) or\n the friendly name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } }, @@ -433,7 +433,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

The identifier of the secret whose details you want to retrieve. You can specify either\n the Amazon Resource Name (ARN) or the friendly name of the secret.

\n \n

If you specify an ARN, we generally recommend that you specify a complete ARN. You can \n specify a partial ARN too—for example, if you don’t include the final hyphen and six random \n characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN \n match can work as long as it uniquely matches only one secret. However, if your secret has a \n name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six \n characters to the ARN) and you try to use that as a partial ARN, then those characters cause \n Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected \n results. To avoid this situation, we recommend that you don’t create secret names ending \n with a hyphen followed by six characters.

\n

If you specify an incomplete ARN without the random suffix, and instead provide the \n 'friendly name', you must not include the random suffix. If you do include the random suffix added by Secrets Manager, \n you receive either a ResourceNotFoundException or an AccessDeniedException error, depending on your permissions.

\n
", + "smithy.api#documentation": "

The identifier of the secret whose details you want to retrieve. You can specify either\n the Amazon Resource Name (ARN) or the friendly name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } } @@ -482,7 +482,7 @@ "RotationRules": { "target": "com.amazonaws.secretsmanager#RotationRulesType", "traits": { - "smithy.api#documentation": "

A structure with the rotation configuration for this secret.

" + "smithy.api#documentation": "

A structure with the rotation configuration for this secret. This field is only populated \n if rotation is configured.

" } }, "LastRotatedDate": { @@ -803,7 +803,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

Specifies the secret that you want to retrieve the attached resource-based policy for. You\n can specify either the Amazon Resource Name (ARN) or the friendly name of the secret.

\n \n

If you specify an ARN, we generally recommend that you specify a complete ARN. You can \n specify a partial ARN too—for example, if you don’t include the final hyphen and six random \n characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN \n match can work as long as it uniquely matches only one secret. However, if your secret has a \n name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six \n characters to the ARN) and you try to use that as a partial ARN, then those characters cause \n Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected \n results. To avoid this situation, we recommend that you don’t create secret names ending \n with a hyphen followed by six characters.

\n

If you specify an incomplete ARN without the random suffix, and instead provide the \n 'friendly name', you must not include the random suffix. If you do include the random suffix added by Secrets Manager, \n you receive either a ResourceNotFoundException or an AccessDeniedException error, depending on your permissions.

\n
", + "smithy.api#documentation": "

Specifies the secret that you want to retrieve the attached resource-based policy for. You\n can specify either the Amazon Resource Name (ARN) or the friendly name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } } @@ -867,7 +867,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

Specifies the secret containing the version that you want to retrieve. You can specify\n either the Amazon Resource Name (ARN) or the friendly name of the secret.

\n \n

If you specify an ARN, we generally recommend that you specify a complete ARN. You can \n specify a partial ARN too—for example, if you don’t include the final hyphen and six random \n characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN \n match can work as long as it uniquely matches only one secret. However, if your secret has a \n name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six \n characters to the ARN) and you try to use that as a partial ARN, then those characters cause \n Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected \n results. To avoid this situation, we recommend that you don’t create secret names ending \n with a hyphen followed by six characters.

\n

If you specify an incomplete ARN without the random suffix, and instead provide the \n 'friendly name', you must not include the random suffix. If you do include the random suffix added by Secrets Manager, \n you receive either a ResourceNotFoundException or an AccessDeniedException error, depending on your permissions.

\n
", + "smithy.api#documentation": "

Specifies the secret containing the version that you want to retrieve. You can specify\n either the Amazon Resource Name (ARN) or the friendly name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } }, @@ -1056,7 +1056,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

The identifier for the secret containing the versions you want to list. You can specify\n either the Amazon Resource Name (ARN) or the friendly name of the secret.

\n \n

If you specify an ARN, we generally recommend that you specify a complete ARN. You can \n specify a partial ARN too—for example, if you don’t include the final hyphen and six random \n characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN \n match can work as long as it uniquely matches only one secret. However, if your secret has a \n name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six \n characters to the ARN) and you try to use that as a partial ARN, then those characters cause \n Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected \n results. To avoid this situation, we recommend that you don’t create secret names ending \n with a hyphen followed by six characters.

\n

If you specify an incomplete ARN without the random suffix, and instead provide the \n 'friendly name', you must not include the random suffix. If you do include the random suffix added by Secrets Manager, \n you receive either a ResourceNotFoundException or an AccessDeniedException error, depending on your permissions.

\n
", + "smithy.api#documentation": "

The identifier for the secret containing the versions you want to list. You can specify\n either the Amazon Resource Name (ARN) or the friendly name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } }, @@ -1314,7 +1314,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

Specifies the secret that you want to attach the resource-based policy. You can specify\n either the ARN or the friendly name of the secret.

\n \n

If you specify an ARN, we generally recommend that you specify a complete ARN. You can \n specify a partial ARN too—for example, if you don’t include the final hyphen and six random \n characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN \n match can work as long as it uniquely matches only one secret. However, if your secret has a \n name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six \n characters to the ARN) and you try to use that as a partial ARN, then those characters cause \n Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected \n results. To avoid this situation, we recommend that you don’t create secret names ending \n with a hyphen followed by six characters.

\n

If you specify an incomplete ARN without the random suffix, and instead provide the \n 'friendly name', you must not include the random suffix. If you do include the random suffix added by Secrets Manager, \n you receive either a ResourceNotFoundException or an AccessDeniedException error, depending on your permissions.

\n
", + "smithy.api#documentation": "

Specifies the secret that you want to attach the resource-based policy. You can specify\n either the ARN or the friendly name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } }, @@ -1383,7 +1383,7 @@ } ], "traits": { - "smithy.api#documentation": "

Stores a new encrypted secret value in the specified secret. To do this, the operation\n creates a new version and attaches it to the secret. The version can contain a new\n SecretString value or a new SecretBinary value. You can also\n specify the staging labels that are initially attached to the new version.

\n \n

The Secrets Manager console uses only the SecretString field. To add binary data to a\n secret with the SecretBinary field you must use the Amazon Web Services CLI or one of the\n Amazon Web Services SDKs.

\n
\n \n \n \n \n

\n Minimum permissions\n

\n

To run this command, you must have the following permissions:

\n \n

\n Related operations\n

\n " + "smithy.api#documentation": "

Stores a new encrypted secret value in the specified secret. To do this, the operation\n creates a new version and attaches it to the secret. The version can contain a new\n SecretString value or a new SecretBinary value. You can also\n specify the staging labels that are initially attached to the new version.

\n

We recommend you avoid calling PutSecretValue at a sustained rate of more than \n once every 10 minutes. When you update the secret value, Secrets Manager creates a new version \n of the secret. Secrets Manager removes outdated versions when there are more than 100, but it does not \n remove versions created less than 24 hours ago. If you call PutSecretValue more \n than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach \n the quota for secret versions.

\n \n \n \n \n

\n Minimum permissions\n

\n

To run this command, you must have the following permissions:

\n \n

\n Related operations\n

\n " } }, "com.amazonaws.secretsmanager#PutSecretValueRequest": { @@ -1392,7 +1392,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

Specifies the secret to which you want to add a new version. You can specify either the\n Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already\n exist.

\n \n

If you specify an ARN, we generally recommend that you specify a complete ARN. You can \n specify a partial ARN too—for example, if you don’t include the final hyphen and six random \n characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN \n match can work as long as it uniquely matches only one secret. However, if your secret has a \n name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six \n characters to the ARN) and you try to use that as a partial ARN, then those characters cause \n Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected \n results. To avoid this situation, we recommend that you don’t create secret names ending \n with a hyphen followed by six characters.

\n

If you specify an incomplete ARN without the random suffix, and instead provide the \n 'friendly name', you must not include the random suffix. If you do include the random suffix added by Secrets Manager, \n you receive either a ResourceNotFoundException or an AccessDeniedException error, depending on your permissions.

\n
", + "smithy.api#documentation": "

Specifies the secret to which you want to add a new version. You can specify either the\n Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already\n exist.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } }, @@ -1412,7 +1412,7 @@ "SecretString": { "target": "com.amazonaws.secretsmanager#SecretStringType", "traits": { - "smithy.api#documentation": "

(Optional) Specifies text data that you want to encrypt and store in this new version of\n the secret. Either SecretString or SecretBinary must have a value,\n but not both. They cannot both be empty.

\n \n

If you create this secret by using the Secrets Manager console then Secrets Manager puts the\n protected secret text in only the SecretString parameter. The Secrets Manager console\n stores the information as a JSON structure of key/value pairs that the default Lambda rotation\n function knows how to parse.

\n

For storing multiple values, we recommend that you use a JSON text string argument and\n specify key/value pairs. For information on how to format a JSON parameter for the various\n command line tool environments, see Using JSON for\n Parameters in the CLI User Guide.

\n

For example:

\n

\n [{\"username\":\"bob\"},{\"password\":\"abc123xyz456\"}]\n

\n

If your command-line tool or SDK requires quotation marks around the parameter, you should\n use single quotes to avoid confusion with the double quotes required in the JSON text.

" + "smithy.api#documentation": "

(Optional) Specifies text data that you want to encrypt and store in this new version of\n the secret. Either SecretString or SecretBinary must have a value,\n but not both. They cannot both be empty.

\n \n

If you create this secret by using the Secrets Manager console then Secrets Manager puts the\n protected secret text in only the SecretString parameter. The Secrets Manager console\n stores the information as a JSON structure of key/value pairs that the default Lambda rotation\n function knows how to parse.

\n

For storing multiple values, we recommend that you use a JSON text \n string argument and specify key/value pairs. For more information, see Specifying parameter values for the Amazon Web Services CLI\n in the Amazon Web Services CLI User Guide.

" } }, "VersionStages": { @@ -1739,7 +1739,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

Specifies the secret that you want to restore from a previously scheduled deletion. You\n can specify either the Amazon Resource Name (ARN) or the friendly name of the secret.

\n \n

If you specify an ARN, we generally recommend that you specify a complete ARN. You can \n specify a partial ARN too—for example, if you don’t include the final hyphen and six random \n characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN \n match can work as long as it uniquely matches only one secret. However, if your secret has a \n name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six \n characters to the ARN) and you try to use that as a partial ARN, then those characters cause \n Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected \n results. To avoid this situation, we recommend that you don’t create secret names ending \n with a hyphen followed by six characters.

\n

If you specify an incomplete ARN without the random suffix, and instead provide the \n 'friendly name', you must not include the random suffix. If you do include the random suffix added by Secrets Manager, \n you receive either a ResourceNotFoundException or an AccessDeniedException error, depending on your permissions.

\n
", + "smithy.api#documentation": "

Specifies the secret that you want to restore from a previously scheduled deletion. You\n can specify either the Amazon Resource Name (ARN) or the friendly name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } } @@ -1794,7 +1794,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

Specifies the secret that you want to rotate. You can specify either the Amazon Resource\n Name (ARN) or the friendly name of the secret.

\n \n

If you specify an ARN, we generally recommend that you specify a complete ARN. You can \n specify a partial ARN too—for example, if you don’t include the final hyphen and six random \n characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN \n match can work as long as it uniquely matches only one secret. However, if your secret has a \n name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six \n characters to the ARN) and you try to use that as a partial ARN, then those characters cause \n Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected \n results. To avoid this situation, we recommend that you don’t create secret names ending \n with a hyphen followed by six characters.

\n

If you specify an incomplete ARN without the random suffix, and instead provide the \n 'friendly name', you must not include the random suffix. If you do include the random suffix added by Secrets Manager, \n you receive either a ResourceNotFoundException or an AccessDeniedException error, depending on your permissions.

\n
", + "smithy.api#documentation": "

Specifies the secret that you want to rotate. You can specify either the Amazon Resource\n Name (ARN) or the friendly name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } }, @@ -2272,14 +2272,14 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

The identifier for the secret that you want to attach tags to. You can specify either the\n Amazon Resource Name (ARN) or the friendly name of the secret.

\n \n

If you specify an ARN, we generally recommend that you specify a complete ARN. You can \n specify a partial ARN too—for example, if you don’t include the final hyphen and six random \n characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN \n match can work as long as it uniquely matches only one secret. However, if your secret has a \n name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six \n characters to the ARN) and you try to use that as a partial ARN, then those characters cause \n Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected \n results. To avoid this situation, we recommend that you don’t create secret names ending \n with a hyphen followed by six characters.

\n

If you specify an incomplete ARN without the random suffix, and instead provide the \n 'friendly name', you must not include the random suffix. If you do include the random suffix added by Secrets Manager, \n you receive either a ResourceNotFoundException or an AccessDeniedException error, depending on your permissions.

\n
", + "smithy.api#documentation": "

The identifier for the secret that you want to attach tags to. You can specify either the\n Amazon Resource Name (ARN) or the friendly name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } }, "Tags": { "target": "com.amazonaws.secretsmanager#TagListType", "traits": { - "smithy.api#documentation": "

The tags to attach to the secret. Each element in the list consists of a Key\n and a Value.

\n

This parameter to the API requires a JSON text string argument. For information on how to\n format a JSON parameter for the various command line tool environments, see Using JSON for Parameters in the CLI User Guide. For the\n CLI, you can also use the syntax: --Tags Key=\"Key1\",Value=\"Value1\"\n Key=\"Key2\",Value=\"Value2\"[,…]\n

", + "smithy.api#documentation": "

The tags to attach to the secret. Each element in the list consists of a Key\n and a Value.

\n

This parameter to the API requires a JSON text string argument.

\n

For storing multiple values, we recommend that you use a JSON text \n string argument and specify key/value pairs. For more information, see Specifying parameter values for the Amazon Web Services CLI\n in the Amazon Web Services CLI User Guide.

", "smithy.api#required": {} } } @@ -2326,14 +2326,14 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

The identifier for the secret that you want to remove tags from. You can specify either\n the Amazon Resource Name (ARN) or the friendly name of the secret.

\n \n

If you specify an ARN, we generally recommend that you specify a complete ARN. You can \n specify a partial ARN too—for example, if you don’t include the final hyphen and six random \n characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN \n match can work as long as it uniquely matches only one secret. However, if your secret has a \n name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six \n characters to the ARN) and you try to use that as a partial ARN, then those characters cause \n Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected \n results. To avoid this situation, we recommend that you don’t create secret names ending \n with a hyphen followed by six characters.

\n

If you specify an incomplete ARN without the random suffix, and instead provide the \n 'friendly name', you must not include the random suffix. If you do include the random suffix added by Secrets Manager, \n you receive either a ResourceNotFoundException or an AccessDeniedException error, depending on your permissions.

\n
", + "smithy.api#documentation": "

The identifier for the secret that you want to remove tags from. You can specify either\n the Amazon Resource Name (ARN) or the friendly name of the secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } }, "TagKeys": { "target": "com.amazonaws.secretsmanager#TagKeyListType", "traits": { - "smithy.api#documentation": "

A list of tag key names to remove from the secret. You don't specify the value. Both the\n key and its associated value are removed.

\n

This parameter to the API requires a JSON text string argument. For information on how to\n format a JSON parameter for the various command line tool environments, see Using JSON for Parameters in the CLI User Guide.

", + "smithy.api#documentation": "

A list of tag key names to remove from the secret. You don't specify the value. Both the\n key and its associated value are removed.

\n

This parameter to the API requires a JSON text string argument.

\n

For storing multiple values, we recommend that you use a JSON text \n string argument and specify key/value pairs. For more information, see Specifying parameter values for the Amazon Web Services CLI\n in the Amazon Web Services CLI User Guide.

", "smithy.api#required": {} } } @@ -2377,7 +2377,7 @@ } ], "traits": { - "smithy.api#documentation": "

Modifies many of the details of the specified secret. If you include a\n ClientRequestToken and either\n SecretString or SecretBinary then it also creates a new version\n attached to the secret.

\n

To modify the rotation configuration of a secret, use RotateSecret\n instead.

\n \n

The Secrets Manager console uses only the SecretString parameter and therefore limits\n you to encrypting and storing only a text string. To encrypt and store binary data as part\n of the version of a secret, you must use either the Amazon Web Services CLI or one of the Amazon Web Services\n SDKs.

\n
\n \n \n \n \n

\n Minimum permissions\n

\n

To run this command, you must have the following permissions:

\n \n

\n Related operations\n

\n " + "smithy.api#documentation": "

Modifies many of the details of the specified secret.

\n

To change the secret value, you can also use PutSecretValue.

\n

To change the rotation configuration of a secret, use RotateSecret\n instead.

\n \n

We recommend you avoid calling UpdateSecret at a sustained rate of more than \n once every 10 minutes. When you call UpdateSecret to update the secret value, Secrets Manager creates a new version \n of the secret. Secrets Manager removes outdated versions when there are more than 100, but it does not \n remove versions created less than 24 hours ago. If you update the secret value more \n than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach \n the quota for secret versions.

\n \n

The Secrets Manager console uses only the SecretString parameter and therefore limits\n you to encrypting and storing only a text string. To encrypt and store binary data as part\n of the version of a secret, you must use either the Amazon Web Services CLI or one of the Amazon Web Services\n SDKs.

\n
\n \n \n \n \n

\n Minimum permissions\n

\n

To run this command, you must have the following permissions:

\n \n

\n Related operations\n

\n " } }, "com.amazonaws.secretsmanager#UpdateSecretRequest": { @@ -2386,7 +2386,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

Specifies the secret that you want to modify or to which you want to add a new version.\n You can specify either the Amazon Resource Name (ARN) or the friendly name of the\n secret.

\n \n

If you specify an ARN, we generally recommend that you specify a complete ARN. You can \n specify a partial ARN too—for example, if you don’t include the final hyphen and six random \n characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN \n match can work as long as it uniquely matches only one secret. However, if your secret has a \n name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six \n characters to the ARN) and you try to use that as a partial ARN, then those characters cause \n Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected \n results. To avoid this situation, we recommend that you don’t create secret names ending \n with a hyphen followed by six characters.

\n

If you specify an incomplete ARN without the random suffix, and instead provide the \n 'friendly name', you must not include the random suffix. If you do include the random suffix added by Secrets Manager, \n you receive either a ResourceNotFoundException or an AccessDeniedException error, depending on your permissions.

\n
", + "smithy.api#documentation": "

Specifies the secret that you want to modify or to which you want to add a new version.\n You can specify either the Amazon Resource Name (ARN) or the friendly name of the\n secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } }, @@ -2406,7 +2406,7 @@ "KmsKeyId": { "target": "com.amazonaws.secretsmanager#KmsKeyIdType", "traits": { - "smithy.api#documentation": "

(Optional) Specifies an updated ARN or alias of the Amazon Web Services KMS customer master key (CMK) to be\n used to encrypt the protected text in new versions of this secret.

\n \n

You can only use the account's default CMK to encrypt and decrypt if you call this\n operation using credentials from the same account that owns the secret. If the secret is in\n a different account, then you must create a custom CMK and provide the ARN of that CMK in\n this field. The user making the call must have permissions to both the secret and the CMK in\n their respective accounts.

\n
" + "smithy.api#documentation": "

(Optional) Specifies an updated ARN or alias of the Amazon Web Services KMS customer master key (CMK) that Secrets Manager \n uses to encrypt the protected text in new versions of this secret as well as any existing versions of this secret that have the staging labels AWSCURRENT, AWSPENDING, or AWSPREVIOUS. For more information about staging labels, see Staging\n Labels in the Amazon Web Services Secrets Manager User Guide.

\n \n

You can only use the account's default CMK to encrypt and decrypt if you call this\n operation using credentials from the same account that owns the secret. If the secret is in\n a different account, then you must create a custom CMK and provide the ARN of that CMK in\n this field. The user making the call must have permissions to both the secret and the CMK in\n their respective accounts.

\n
" } }, "SecretBinary": { @@ -2418,7 +2418,7 @@ "SecretString": { "target": "com.amazonaws.secretsmanager#SecretStringType", "traits": { - "smithy.api#documentation": "

(Optional) Specifies updated text data that you want to encrypt and store in this new\n version of the secret. Either SecretBinary or SecretString must have\n a value, but not both. They cannot both be empty.

\n

If you create this secret by using the Secrets Manager console then Secrets Manager puts the\n protected secret text in only the SecretString parameter. The Secrets Manager console\n stores the information as a JSON structure of key/value pairs that the default Lambda rotation\n function knows how to parse.

\n

For storing multiple values, we recommend that you use a JSON text string argument and\n specify key/value pairs. For information on how to format a JSON parameter for the various\n command line tool environments, see Using JSON for\n Parameters in the CLI User Guide. For example:

\n

\n [{\"username\":\"bob\"},{\"password\":\"abc123xyz456\"}]\n

\n

If your command-line tool or SDK requires quotation marks around the parameter, you should\n use single quotes to avoid confusion with the double quotes required in the JSON text. You can\n also 'escape' the double quote character in the embedded JSON text by prefacing each with a\n backslash. For example, the following string is surrounded by double-quotes. All of the\n embedded double quotes are escaped:

\n

\n \"[{\\\"username\\\":\\\"bob\\\"},{\\\"password\\\":\\\"abc123xyz456\\\"}]\"\n

" + "smithy.api#documentation": "

(Optional) Specifies updated text data that you want to encrypt and store in this new\n version of the secret. Either SecretBinary or SecretString must have\n a value, but not both. They cannot both be empty.

\n

If you create this secret by using the Secrets Manager console then Secrets Manager puts the\n protected secret text in only the SecretString parameter. The Secrets Manager console\n stores the information as a JSON structure of key/value pairs that the default Lambda rotation\n function knows how to parse.

\n

For storing multiple values, we recommend that you use a JSON text \n string argument and specify key/value pairs. For more information, see Specifying parameter values for the Amazon Web Services CLI\n in the Amazon Web Services CLI User Guide.

" } } } @@ -2481,7 +2481,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

Specifies the secret with the version with the list of staging labels you want to modify.\n You can specify either the Amazon Resource Name (ARN) or the friendly name of the\n secret.

\n \n

If you specify an ARN, we generally recommend that you specify a complete ARN. You can \n specify a partial ARN too—for example, if you don’t include the final hyphen and six random \n characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN \n match can work as long as it uniquely matches only one secret. However, if your secret has a \n name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six \n characters to the ARN) and you try to use that as a partial ARN, then those characters cause \n Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected \n results. To avoid this situation, we recommend that you don’t create secret names ending \n with a hyphen followed by six characters.

\n

If you specify an incomplete ARN without the random suffix, and instead provide the \n 'friendly name', you must not include the random suffix. If you do include the random suffix added by Secrets Manager, \n you receive either a ResourceNotFoundException or an AccessDeniedException error, depending on your permissions.

\n
", + "smithy.api#documentation": "

Specifies the secret with the version with the list of staging labels you want to modify.\n You can specify either the Amazon Resource Name (ARN) or the friendly name of the\n secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

", "smithy.api#required": {} } }, @@ -2558,7 +2558,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

(Optional) The identifier of the secret with the resource-based policy you want to\n validate. You can specify either the Amazon Resource Name (ARN) or the friendly name of the\n secret.

\n \n

If you specify an ARN, we generally recommend that you specify a complete ARN. You can \n specify a partial ARN too—for example, if you don’t include the final hyphen and six random \n characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN \n match can work as long as it uniquely matches only one secret. However, if your secret has a \n name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six \n characters to the ARN) and you try to use that as a partial ARN, then those characters cause \n Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected \n results. To avoid this situation, we recommend that you don’t create secret names ending \n with a hyphen followed by six characters.

\n

If you specify an incomplete ARN without the random suffix, and instead provide the \n 'friendly name', you must not include the random suffix. If you do include the random suffix added by Secrets Manager, \n you receive either a ResourceNotFoundException or an AccessDeniedException error, depending on your permissions.

\n
" + "smithy.api#documentation": "

(Optional) The identifier of the secret with the resource-based policy you want to\n validate. You can specify either the Amazon Resource Name (ARN) or the friendly name of the\n secret.

\n

For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

" } }, "ResourcePolicy": { diff --git a/codegen/sdk-codegen/aws-models/securityhub.2018-10-26.json b/codegen/sdk-codegen/aws-models/securityhub.2018-10-26.json index cebea36c141..9dcecc75d1d 100644 --- a/codegen/sdk-codegen/aws-models/securityhub.2018-10-26.json +++ b/codegen/sdk-codegen/aws-models/securityhub.2018-10-26.json @@ -1720,6 +1720,12 @@ "smithy.api#documentation": "

Provides information about the origin groups in the distribution.

" } }, + "ViewerCertificate": { + "target": "com.amazonaws.securityhub#AwsCloudFrontDistributionViewerCertificate", + "traits": { + "smithy.api#documentation": "

Provides information about the TLS/SSL configuration that the distribution uses to communicate with viewers.

" + } + }, "Status": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { @@ -1909,6 +1915,56 @@ "smithy.api#documentation": "

A complex type that contains information about origins and origin groups for this distribution.

" } }, + "com.amazonaws.securityhub#AwsCloudFrontDistributionViewerCertificate": { + "type": "structure", + "members": { + "AcmCertificateArn": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The ARN of the ACM certificate. Used if the certificate is stored in ACM. If you provide an ACM certificate ARN, you must also provide MinimumCertificateVersion and SslSupportMethod.

" + } + }, + "Certificate": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The identifier of the certificate. Note that in CloudFront, this attribute is deprecated.

" + } + }, + "CertificateSource": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The source of the certificate identified by Certificate. Note that in CloudFront, this attribute is deprecated.

" + } + }, + "CloudFrontDefaultCertificate": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

Whether the distribution uses the CloudFront domain name. If set to false, then you provide either AcmCertificateArn or IamCertificateId.

" + } + }, + "IamCertificateId": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The identifier of the IAM certificate. Used if the certificate is stored in IAM. If you provide IamCertificateId, then you also must provide MinimumProtocolVersion and SslSupportMethod.

" + } + }, + "MinimumProtocolVersion": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The security policy that CloudFront uses for HTTPS connections with viewers. If SslSupportMethod is sni-only, then MinimumProtocolVersion must be TLSv1 or higher.

" + } + }, + "SslSupportMethod": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The viewers that the distribution accepts HTTPS connections from.

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

Provides information about the TLS/SSL configuration that the distribution uses to communicate with viewers.

" + } + }, "com.amazonaws.securityhub#AwsCloudTrailTrailDetails": { "type": "structure", "members": { @@ -2007,6 +2063,74 @@ "smithy.api#documentation": "

Provides details about a CloudTrail trail.

" } }, + "com.amazonaws.securityhub#AwsCodeBuildProjectArtifactsDetails": { + "type": "structure", + "members": { + "ArtifactIdentifier": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

An identifier for the artifact definition.

" + } + }, + "EncryptionDisabled": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to disable encryption on the artifact. Only valid when Type is S3.

" + } + }, + "Location": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

Only used when Type is S3. The name of the S3 bucket where the artifact is located.

" + } + }, + "Name": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

Only used when Type is S3. The name of the artifact. Used with NamepaceType and Path to determine the pattern for storing the artifact.

" + } + }, + "NamespaceType": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

Only used when Type is S3. The value to use for the namespace. Used with Name and Path to determine the pattern for storing the artifact.

" + } + }, + "OverrideArtifactName": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

Whether the name specified in the buildspec file overrides the artifact name.

" + } + }, + "Packaging": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

Only used when Type is S3. The type of output artifact to create.

" + } + }, + "Path": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

Only used when Type is S3. The path to the artifact. Used with Name and NamespaceType to determine the pattern for storing the artifact.

" + } + }, + "Type": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The type of build artifact.

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

Information about the build artifacts for the CodeBuild project.

" + } + }, + "com.amazonaws.securityhub#AwsCodeBuildProjectArtifactsList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#AwsCodeBuildProjectArtifactsDetails" + } + }, "com.amazonaws.securityhub#AwsCodeBuildProjectDetails": { "type": "structure", "members": { @@ -2016,6 +2140,12 @@ "smithy.api#documentation": "

The KMS key used to encrypt the\n build output artifacts.

\n

You can specify either the ARN of the KMS key or, if available, the\n KMS key alias (using the format alias/alias-name).

" } }, + "Artifacts": { + "target": "com.amazonaws.securityhub#AwsCodeBuildProjectArtifactsList", + "traits": { + "smithy.api#documentation": "

Information about the build artifacts for the CodeBuild project.

" + } + }, "Environment": { "target": "com.amazonaws.securityhub#AwsCodeBuildProjectEnvironment", "traits": { @@ -2040,6 +2170,12 @@ "smithy.api#documentation": "

The ARN of the IAM role that enables CodeBuild to interact with dependent Amazon Web Services\n services on behalf of the Amazon Web Services account.

" } }, + "LogsConfig": { + "target": "com.amazonaws.securityhub#AwsCodeBuildProjectLogsConfigDetails", + "traits": { + "smithy.api#documentation": "

Information about logs for the build project.

" + } + }, "VpcConfig": { "target": "com.amazonaws.securityhub#AwsCodeBuildProjectVpcConfig", "traits": { @@ -2060,6 +2196,18 @@ "smithy.api#documentation": "

The certificate to use with this build project.

" } }, + "EnvironmentVariables": { + "target": "com.amazonaws.securityhub#AwsCodeBuildProjectEnvironmentEnvironmentVariablesList", + "traits": { + "smithy.api#documentation": "

A set of environment variables to make available to builds for the build project.

" + } + }, + "PrivilegedMode": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

Whether to allow the Docker daemon to run inside a Docker container. Set to true if the build project is used to build Docker images.

" + } + }, "ImagePullCredentialsType": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { @@ -2083,6 +2231,38 @@ "smithy.api#documentation": "

Information about the build environment for this build project.

" } }, + "com.amazonaws.securityhub#AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The name of the environment variable.

" + } + }, + "Type": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The type of environment variable.

" + } + }, + "Value": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The value of the environment variable.

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

Information about an environment variable that is available to builds for the build project.

" + } + }, + "com.amazonaws.securityhub#AwsCodeBuildProjectEnvironmentEnvironmentVariablesList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails" + } + }, "com.amazonaws.securityhub#AwsCodeBuildProjectEnvironmentRegistryCredential": { "type": "structure", "members": { @@ -2103,6 +2283,78 @@ "smithy.api#documentation": "

The credentials for access to a private registry.

" } }, + "com.amazonaws.securityhub#AwsCodeBuildProjectLogsConfigCloudWatchLogsDetails": { + "type": "structure", + "members": { + "GroupName": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The group name of the logs in CloudWatch Logs.

" + } + }, + "Status": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The current status of the logs in CloudWatch Logs for a build project.

" + } + }, + "StreamName": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The prefix of the stream name of the CloudWatch Logs.

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

Information about CloudWatch Logs for the build project.

" + } + }, + "com.amazonaws.securityhub#AwsCodeBuildProjectLogsConfigDetails": { + "type": "structure", + "members": { + "CloudWatchLogs": { + "target": "com.amazonaws.securityhub#AwsCodeBuildProjectLogsConfigCloudWatchLogsDetails", + "traits": { + "smithy.api#documentation": "

Information about CloudWatch Logs for the build project.

" + } + }, + "S3Logs": { + "target": "com.amazonaws.securityhub#AwsCodeBuildProjectLogsConfigS3LogsDetails", + "traits": { + "smithy.api#documentation": "

Information about logs built to an S3 bucket for a build project.

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

Information about logs for the build project.

" + } + }, + "com.amazonaws.securityhub#AwsCodeBuildProjectLogsConfigS3LogsDetails": { + "type": "structure", + "members": { + "EncryptionDisabled": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

Whether to disable encryption of the S3 build log output.

" + } + }, + "Location": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The ARN of the S3 bucket and the path prefix for S3 logs.

" + } + }, + "Status": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The current status of the S3 build logs.

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

Information about logs built to an S3 bucket for a build project.

" + } + }, "com.amazonaws.securityhub#AwsCodeBuildProjectSource": { "type": "structure", "members": { @@ -3625,6 +3877,100 @@ "smithy.api#documentation": "

Details about an EC2 VPC.

" } }, + "com.amazonaws.securityhub#AwsEc2VpcEndpointServiceDetails": { + "type": "structure", + "members": { + "AcceptanceRequired": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

Whether requests from other Amazon Web Services accounts to create an endpoint to the service must first be accepted.

" + } + }, + "AvailabilityZones": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

The Availability Zones where the service is available.

" + } + }, + "BaseEndpointDnsNames": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

The DNS names for the service.

" + } + }, + "ManagesVpcEndpoints": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

Whether the service manages its VPC endpoints.

" + } + }, + "GatewayLoadBalancerArns": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

The ARNs of the Gateway Load Balancers for the service.

" + } + }, + "NetworkLoadBalancerArns": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

The ARNs of the Network Load Balancers for the service.

" + } + }, + "PrivateDnsName": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The private DNS name for the service.

" + } + }, + "ServiceId": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The identifier of the service.

" + } + }, + "ServiceName": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The name of the service.

" + } + }, + "ServiceState": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The current state of the service.

" + } + }, + "ServiceType": { + "target": "com.amazonaws.securityhub#AwsEc2VpcEndpointServiceServiceTypeList", + "traits": { + "smithy.api#documentation": "

The types for the service.

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

Contains details about the service configuration for a VPC endpoint service.

" + } + }, + "com.amazonaws.securityhub#AwsEc2VpcEndpointServiceServiceTypeDetails": { + "type": "structure", + "members": { + "ServiceType": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The type of service.

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

The service type information for a VPC endpoint service.

" + } + }, + "com.amazonaws.securityhub#AwsEc2VpcEndpointServiceServiceTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#AwsEc2VpcEndpointServiceServiceTypeDetails" + } + }, "com.amazonaws.securityhub#AwsEc2VpnConnectionDetails": { "type": "structure", "members": { @@ -3949,19 +4295,97 @@ "smithy.api#documentation": "

Information about an Amazon ECR image.

" } }, - "com.amazonaws.securityhub#AwsEcsClusterClusterSettingsDetails": { + "com.amazonaws.securityhub#AwsEcrRepositoryDetails": { "type": "structure", "members": { - "Name": { + "Arn": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The name of the setting.

" + "smithy.api#documentation": "

The ARN of the repository.

" } }, - "Value": { + "ImageScanningConfiguration": { + "target": "com.amazonaws.securityhub#AwsEcrRepositoryImageScanningConfigurationDetails", + "traits": { + "smithy.api#documentation": "

The image scanning configuration for a repository.

" + } + }, + "ImageTagMutability": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The value of the setting.

" + "smithy.api#documentation": "

The tag mutability setting for the repository.

" + } + }, + "LifecyclePolicy": { + "target": "com.amazonaws.securityhub#AwsEcrRepositoryLifecyclePolicyDetails", + "traits": { + "smithy.api#documentation": "

Information about the lifecycle policy for the repository.

" + } + }, + "RepositoryName": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The name of the repository.

" + } + }, + "RepositoryPolicyText": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The text of the repository policy.

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

Provides information about an Amazon Elastic Container Registry repository.

" + } + }, + "com.amazonaws.securityhub#AwsEcrRepositoryImageScanningConfigurationDetails": { + "type": "structure", + "members": { + "ScanOnPush": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

Whether to scan images after they are pushed to a repository.

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

The image scanning configuration for a repository.

" + } + }, + "com.amazonaws.securityhub#AwsEcrRepositoryLifecyclePolicyDetails": { + "type": "structure", + "members": { + "LifecyclePolicyText": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The text of the lifecycle policy.

" + } + }, + "RegistryId": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account identifier that is associated with the registry that contains the repository.

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

Information about the lifecycle policy for the repository.

" + } + }, + "com.amazonaws.securityhub#AwsEcsClusterClusterSettingsDetails": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The name of the setting.

" + } + }, + "Value": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The value of the setting.

" } } }, @@ -5671,6 +6095,128 @@ "target": "com.amazonaws.securityhub#AwsEcsTaskDefinitionVolumesDetails" } }, + "com.amazonaws.securityhub#AwsEksClusterDetails": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The ARN of the cluster.

" + } + }, + "CertificateAuthorityData": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The certificate authority data for the cluster.

" + } + }, + "ClusterStatus": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The status of the cluster.

" + } + }, + "Endpoint": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The endpoint for the Amazon EKS API server.

" + } + }, + "Name": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The name of the cluster.

" + } + }, + "ResourcesVpcConfig": { + "target": "com.amazonaws.securityhub#AwsEksClusterResourcesVpcConfigDetails", + "traits": { + "smithy.api#documentation": "

The VPC configuration used by the cluster control plane.

" + } + }, + "RoleArn": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The ARN of the IAM role that provides permissions for the Amazon EKS control plane to make calls to Amazon Web Services API operations on your behalf.

" + } + }, + "Version": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The Amazon EKS server version for the cluster.

" + } + }, + "Logging": { + "target": "com.amazonaws.securityhub#AwsEksClusterLoggingDetails", + "traits": { + "smithy.api#documentation": "

The logging configuration for the cluster.

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

Provides details about an Amazon EKS cluster.

" + } + }, + "com.amazonaws.securityhub#AwsEksClusterLoggingClusterLoggingDetails": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

Whether the logging types that are listed in Types are enabled.

" + } + }, + "Types": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

A list of logging types.

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

Details for a cluster logging configuration.

" + } + }, + "com.amazonaws.securityhub#AwsEksClusterLoggingClusterLoggingList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#AwsEksClusterLoggingClusterLoggingDetails" + } + }, + "com.amazonaws.securityhub#AwsEksClusterLoggingDetails": { + "type": "structure", + "members": { + "ClusterLogging": { + "target": "com.amazonaws.securityhub#AwsEksClusterLoggingClusterLoggingList", + "traits": { + "smithy.api#documentation": "

Cluster logging configurations.

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

The logging configuration for an Amazon EKS cluster.

" + } + }, + "com.amazonaws.securityhub#AwsEksClusterResourcesVpcConfigDetails": { + "type": "structure", + "members": { + "SecurityGroupIds": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

The security groups that are associated with the cross-account elastic network interfaces that are used to allow communication between your nodes and the Amazon EKS control plane.

" + } + }, + "SubnetIds": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

The subnets that are associated with the cluster.

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

Information about the VPC configuration used by the cluster control plane.

" + } + }, "com.amazonaws.securityhub#AwsElasticBeanstalkEnvironmentDetails": { "type": "structure", "members": { @@ -5907,13 +6453,13 @@ "ElasticsearchVersion": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

Elasticsearch version.

" + "smithy.api#documentation": "

OpenSearch version.

" } }, "ElasticsearchClusterConfig": { "target": "com.amazonaws.securityhub#AwsElasticsearchDomainElasticsearchClusterConfigDetails", "traits": { - "smithy.api#documentation": "

Information about an Elasticsearch cluster configuration.

" + "smithy.api#documentation": "

Information about an OpenSearch cluster configuration.

" } }, "EncryptionAtRestOptions": { @@ -5943,12 +6489,12 @@ "VPCOptions": { "target": "com.amazonaws.securityhub#AwsElasticsearchDomainVPCOptions", "traits": { - "smithy.api#documentation": "

Information that Elasticsearch derives based on VPCOptions for the\n domain.

" + "smithy.api#documentation": "

Information that OpenSearch derives based on VPCOptions for the\n domain.

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

Information about an Amazon Elasticsearch Service domain.

" + "smithy.api#documentation": "

Information about an Elasticsearch domain.

" } }, "com.amazonaws.securityhub#AwsElasticsearchDomainDomainEndpointOptions": { @@ -5963,7 +6509,7 @@ "TLSSecurityPolicy": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The TLS security policy to apply to the HTTPS endpoint of the Elasticsearch\n domain.

\n

Valid values:

\n " + "smithy.api#documentation": "

The TLS security policy to apply to the HTTPS endpoint of the OpenSearch\n domain.

\n

Valid values:

\n " } } }, @@ -6013,12 +6559,12 @@ "ZoneAwarenessEnabled": { "target": "com.amazonaws.securityhub#Boolean", "traits": { - "smithy.api#documentation": "

Whether to enable zone awareness for the Elasticsearch domain. When zone awareness is enabled, Elasticsearch allocates the cluster's nodes and replica index shards across Availability Zones in the same Region. This prevents data loss and minimizes downtime if a node or data center fails.

" + "smithy.api#documentation": "

Whether to enable zone awareness for the Elasticsearch domain. When zone awareness is enabled, OpenSearch allocates the cluster's nodes and replica index shards across Availability Zones in the same Region. This prevents data loss and minimizes downtime if a node or data center fails.

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

details about the configuration of an Elasticsearch cluster.

" + "smithy.api#documentation": "

details about the configuration of an OpenSearch cluster.

" } }, "com.amazonaws.securityhub#AwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails": { @@ -6061,13 +6607,13 @@ "IndexSlowLogs": { "target": "com.amazonaws.securityhub#AwsElasticsearchDomainLogPublishingOptionsLogConfig", "traits": { - "smithy.api#documentation": "

Configures the Elasticsearch index logs\n publishing.

" + "smithy.api#documentation": "

Configures the OpenSearch index logs\n publishing.

" } }, "SearchSlowLogs": { "target": "com.amazonaws.securityhub#AwsElasticsearchDomainLogPublishingOptionsLogConfig", "traits": { - "smithy.api#documentation": "

Configures the Elasticsearch search slow log\n publishing.

" + "smithy.api#documentation": "

Configures the OpenSearch search slow log\n publishing.

" } }, "AuditLogs": { @@ -6118,7 +6664,7 @@ "AutomatedUpdateDate": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The epoch time when the deployment window closes for required updates. After this time,\n Amazon Elasticsearch Service schedules the software upgrade automatically.

" + "smithy.api#documentation": "

The epoch time when the deployment window closes for required updates. After this time,\n Amazon OpenSearch Service schedules the software upgrade automatically.

" } }, "Cancellable": { @@ -6191,7 +6737,7 @@ } }, "traits": { - "smithy.api#documentation": "

Information that Elasticsearch derives based on VPCOptions for the\n domain.

" + "smithy.api#documentation": "

Information that OpenSearch derives based on VPCOptions for the\n domain.

" } }, "com.amazonaws.securityhub#AwsElbAppCookieStickinessPolicies": { @@ -6662,6 +7208,32 @@ "smithy.api#documentation": "

Contains information about the security group for the load balancer.

" } }, + "com.amazonaws.securityhub#AwsElbv2LoadBalancerAttribute": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The name of the load balancer attribute.

" + } + }, + "Value": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The value of the load balancer attribute.

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

A load balancer attribute.

" + } + }, + "com.amazonaws.securityhub#AwsElbv2LoadBalancerAttributes": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#AwsElbv2LoadBalancerAttribute" + } + }, "com.amazonaws.securityhub#AwsElbv2LoadBalancerDetails": { "type": "structure", "members": { @@ -6724,6 +7296,12 @@ "traits": { "smithy.api#documentation": "

The ID of the VPC for the load balancer.

" } + }, + "LoadBalancerAttributes": { + "target": "com.amazonaws.securityhub#AwsElbv2LoadBalancerAttributes", + "traits": { + "smithy.api#documentation": "

Attributes of the load balancer.

" + } } }, "traits": { @@ -7619,115 +8197,483 @@ "ErrorCode": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The error code.

" + "smithy.api#documentation": "

The error code.

" + } + }, + "Message": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The error message.

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

Error messages for environment variables that could not be applied.

" + } + }, + "com.amazonaws.securityhub#AwsLambdaFunctionLayer": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The ARN of the function layer.

" + } + }, + "CodeSize": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

The size of the layer archive in bytes.

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

An Lambda layer.

" + } + }, + "com.amazonaws.securityhub#AwsLambdaFunctionLayerList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#AwsLambdaFunctionLayer" + } + }, + "com.amazonaws.securityhub#AwsLambdaFunctionTracingConfig": { + "type": "structure", + "members": { + "Mode": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The tracing mode.

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

The function's X-Ray tracing configuration.

" + } + }, + "com.amazonaws.securityhub#AwsLambdaFunctionVpcConfig": { + "type": "structure", + "members": { + "SecurityGroupIds": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

A list of VPC security groups IDs.

" + } + }, + "SubnetIds": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

A list of VPC subnet IDs.

" + } + }, + "VpcId": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The ID of the VPC.

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

The VPC security groups and subnets that are attached to a Lambda function.

" + } + }, + "com.amazonaws.securityhub#AwsLambdaLayerVersionDetails": { + "type": "structure", + "members": { + "Version": { + "target": "com.amazonaws.securityhub#AwsLambdaLayerVersionNumber", + "traits": { + "smithy.api#documentation": "

The version number.

" + } + }, + "CompatibleRuntimes": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

The layer's compatible runtimes. Maximum number of five items.

\n

Valid values: nodejs10.x | nodejs12.x | java8 |\n java11 | python2.7 | python3.6 |\n python3.7 | python3.8 | dotnetcore1.0 |\n dotnetcore2.1 | go1.x | ruby2.5 |\n provided\n

" + } + }, + "CreatedDate": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

Indicates when the version was created.

\n

Uses the date-time format specified in RFC 3339 section 5.6, Internet\n Date/Time Format. The value cannot contain spaces. For example,\n 2020-03-22T13:22:13.933Z.

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

Details about a Lambda layer version.

" + } + }, + "com.amazonaws.securityhub#AwsLambdaLayerVersionNumber": { + "type": "long" + }, + "com.amazonaws.securityhub#AwsOpenSearchServiceDomainClusterConfigDetails": { + "type": "structure", + "members": { + "InstanceCount": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

The number of data nodes to use in the OpenSearch domain.

" + } + }, + "WarmEnabled": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

Whether UltraWarm is enabled.

" + } + }, + "WarmCount": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

The number of UltraWarm instances.

" + } + }, + "DedicatedMasterEnabled": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

Whether to use a dedicated master node for the OpenSearch domain. A dedicated master node performs cluster management tasks, but does not hold data or respond to data upload requests.

" + } + }, + "ZoneAwarenessConfig": { + "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails", + "traits": { + "smithy.api#documentation": "

Configuration options for zone awareness. Provided if ZoneAwarenessEnabled is true.

" + } + }, + "DedicatedMasterCount": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

The number of instances to use for the master node. If this attribute is specified, then DedicatedMasterEnabled must be true.

" + } + }, + "InstanceType": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The instance type for your data nodes.

" + } + }, + "WarmType": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The type of UltraWarm instance.

" + } + }, + "ZoneAwarenessEnabled": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

Whether to enable zone awareness for the OpenSearch domain. When zone awareness is enabled, OpenSearch Service allocates the cluster's nodes and replica index shards across Availability Zones (AZs) in the same Region. This prevents data loss and minimizes downtime if a node or data center fails.

" + } + }, + "DedicatedMasterType": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The hardware configuration of the computer that hosts the dedicated master node.

\n

If this attribute is specified, then DedicatedMasterEnabled must be true.\n

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

Details about the configuration of an OpenSearch cluster.

" + } + }, + "com.amazonaws.securityhub#AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails": { + "type": "structure", + "members": { + "AvailabilityZoneCount": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

The number of Availability Zones that the domain uses. Valid values are 2 and 3. The default is 2.

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

Configuration options for zone awareness.

" + } + }, + "com.amazonaws.securityhub#AwsOpenSearchServiceDomainDetails": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The ARN of the OpenSearch Service domain.

" + } + }, + "AccessPolicies": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

IAM policy document that specifies the access policies for the OpenSearch Service domain.

" + } + }, + "DomainName": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The name of the endpoint.

" + } + }, + "Id": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The identifier of the domain.

" + } + }, + "DomainEndpoint": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The domain endpoint.

" + } + }, + "EngineVersion": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The version of the domain engine.

" + } + }, + "EncryptionAtRestOptions": { + "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails", + "traits": { + "smithy.api#documentation": "

Details about the configuration for encryption at rest.

" + } + }, + "NodeToNodeEncryptionOptions": { + "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails", + "traits": { + "smithy.api#documentation": "

Details about the configuration for node-to-node encryption.

" + } + }, + "ServiceSoftwareOptions": { + "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainServiceSoftwareOptionsDetails", + "traits": { + "smithy.api#documentation": "

Information about the status of a domain relative to the latest service software.

" + } + }, + "ClusterConfig": { + "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainClusterConfigDetails", + "traits": { + "smithy.api#documentation": "

Details about the configuration of an OpenSearch cluster.

" + } + }, + "DomainEndpointOptions": { + "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainDomainEndpointOptionsDetails", + "traits": { + "smithy.api#documentation": "

Additional options for the domain endpoint.

" + } + }, + "VpcOptions": { + "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainVpcOptionsDetails", + "traits": { + "smithy.api#documentation": "

Information that OpenSearch Service derives based on VPCOptions for the domain.

" + } + }, + "LogPublishingOptions": { + "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainLogPublishingOptionsDetails", + "traits": { + "smithy.api#documentation": "

Configures the CloudWatch Logs to publish for the OpenSearch domain.

" + } + }, + "DomainEndpoints": { + "target": "com.amazonaws.securityhub#FieldMap", + "traits": { + "smithy.api#documentation": "

The domain endpoints. Used if the OpenSearch domain resides in a VPC.

\n

This is a map of key-value pairs. The key is always vpc. The value is the endpoint.

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

Information about an Amazon OpenSearch Service domain.

" + } + }, + "com.amazonaws.securityhub#AwsOpenSearchServiceDomainDomainEndpointOptionsDetails": { + "type": "structure", + "members": { + "CustomEndpointCertificateArn": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The ARN for the security certificate. The certificate is managed in ACM.

" + } + }, + "CustomEndpointEnabled": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

Whether to enable a custom endpoint for the domain.

" + } + }, + "EnforceHTTPS": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

Whether to require that all traffic to the domain arrive over HTTPS.

" + } + }, + "CustomEndpoint": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The fully qualified URL for the custom endpoint.

" + } + }, + "TLSSecurityPolicy": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The TLS security policy to apply to the HTTPS endpoint of the OpenSearch domain.

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

Information about additional options for the domain endpoint.

" + } + }, + "com.amazonaws.securityhub#AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

Whether encryption at rest is enabled.

" + } + }, + "KmsKeyId": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The KMS key ID.

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

Details about the configuration for encryption at rest for the OpenSearch domain.

" + } + }, + "com.amazonaws.securityhub#AwsOpenSearchServiceDomainLogPublishingOption": { + "type": "structure", + "members": { + "CloudWatchLogsLogGroupArn": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The ARN of the CloudWatch Logs group to publish the logs to.

" } }, - "Message": { - "target": "com.amazonaws.securityhub#NonEmptyString", + "Enabled": { + "target": "com.amazonaws.securityhub#Boolean", "traits": { - "smithy.api#documentation": "

The error message.

" + "smithy.api#documentation": "

Whether the log publishing is enabled.

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

Error messages for environment variables that could not be applied.

" + "smithy.api#documentation": "

Configuration details for a log publishing option.

" } }, - "com.amazonaws.securityhub#AwsLambdaFunctionLayer": { + "com.amazonaws.securityhub#AwsOpenSearchServiceDomainLogPublishingOptionsDetails": { "type": "structure", "members": { - "Arn": { - "target": "com.amazonaws.securityhub#NonEmptyString", + "IndexSlowLogs": { + "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainLogPublishingOption", "traits": { - "smithy.api#documentation": "

The ARN of the function layer.

" + "smithy.api#documentation": "

Configures the OpenSearch index logs publishing.

" } }, - "CodeSize": { - "target": "com.amazonaws.securityhub#Integer", + "SearchSlowLogs": { + "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainLogPublishingOption", "traits": { - "smithy.api#documentation": "

The size of the layer archive in bytes.

" + "smithy.api#documentation": "

Configures the OpenSearch search slow log publishing.

" + } + }, + "AuditLogs": { + "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainLogPublishingOption", + "traits": { + "smithy.api#documentation": "

Configures the OpenSearch audit logs publishing.

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

An Lambda layer.

" + "smithy.api#documentation": "

Configures the CloudWatch Logs to publish for the OpenSearch domain.

" } }, - "com.amazonaws.securityhub#AwsLambdaFunctionLayerList": { - "type": "list", - "member": { - "target": "com.amazonaws.securityhub#AwsLambdaFunctionLayer" - } - }, - "com.amazonaws.securityhub#AwsLambdaFunctionTracingConfig": { + "com.amazonaws.securityhub#AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails": { "type": "structure", "members": { - "Mode": { - "target": "com.amazonaws.securityhub#NonEmptyString", + "Enabled": { + "target": "com.amazonaws.securityhub#Boolean", "traits": { - "smithy.api#documentation": "

The tracing mode.

" + "smithy.api#documentation": "

Whether node-to-node encryption is enabled.

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

The function's X-Ray tracing configuration.

" + "smithy.api#documentation": "

Provides details about the configuration for node-to-node encryption.

" } }, - "com.amazonaws.securityhub#AwsLambdaFunctionVpcConfig": { + "com.amazonaws.securityhub#AwsOpenSearchServiceDomainServiceSoftwareOptionsDetails": { "type": "structure", "members": { - "SecurityGroupIds": { - "target": "com.amazonaws.securityhub#NonEmptyStringList", + "AutomatedUpdateDate": { + "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

A list of VPC security groups IDs.

" + "smithy.api#documentation": "

The epoch time when the deployment window closes for required updates. After this time, OpenSearch Service schedules the software upgrade automatically.

" } }, - "SubnetIds": { - "target": "com.amazonaws.securityhub#NonEmptyStringList", + "Cancellable": { + "target": "com.amazonaws.securityhub#Boolean", "traits": { - "smithy.api#documentation": "

A list of VPC subnet IDs.

" + "smithy.api#documentation": "

Whether a request to update the domain can be canceled.

" } }, - "VpcId": { + "CurrentVersion": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

The ID of the VPC.

" + "smithy.api#documentation": "

The version of the service software that is currently installed on the domain.

" + } + }, + "Description": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

A more detailed description of the service software status.

" + } + }, + "NewVersion": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The most recent version of the service software.

" + } + }, + "UpdateAvailable": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

Whether a service software update is available for the domain.

" + } + }, + "UpdateStatus": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The status of the service software update.

" + } + }, + "OptionalDeployment": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

Whether the service software update is optional.

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

The VPC security groups and subnets that are attached to a Lambda function.

" + "smithy.api#documentation": "

Provides information about the state of the domain relative to the latest service software.

" } }, - "com.amazonaws.securityhub#AwsLambdaLayerVersionDetails": { + "com.amazonaws.securityhub#AwsOpenSearchServiceDomainVpcOptionsDetails": { "type": "structure", "members": { - "Version": { - "target": "com.amazonaws.securityhub#AwsLambdaLayerVersionNumber", - "traits": { - "smithy.api#documentation": "

The version number.

" - } - }, - "CompatibleRuntimes": { + "SecurityGroupIds": { "target": "com.amazonaws.securityhub#NonEmptyStringList", "traits": { - "smithy.api#documentation": "

The layer's compatible runtimes. Maximum number of five items.

\n

Valid values: nodejs10.x | nodejs12.x | java8 |\n java11 | python2.7 | python3.6 |\n python3.7 | python3.8 | dotnetcore1.0 |\n dotnetcore2.1 | go1.x | ruby2.5 |\n provided\n

" + "smithy.api#documentation": "

The list of security group IDs that are associated with the VPC endpoints for the domain.

" } }, - "CreatedDate": { - "target": "com.amazonaws.securityhub#NonEmptyString", + "SubnetIds": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", "traits": { - "smithy.api#documentation": "

Indicates when the version was created.

\n

Uses the date-time format specified in RFC 3339 section 5.6, Internet\n Date/Time Format. The value cannot contain spaces. For example,\n 2020-03-22T13:22:13.933Z.

" + "smithy.api#documentation": "

A list of subnet IDs that are associated with the VPC endpoints for the domain.

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

Details about a Lambda layer version.

" + "smithy.api#documentation": "

Contains information that OpenSearch Service derives based on the VPCOptions for the domain.

" } }, - "com.amazonaws.securityhub#AwsLambdaLayerVersionNumber": { - "type": "long" - }, "com.amazonaws.securityhub#AwsRdsDbClusterAssociatedRole": { "type": "structure", "members": { @@ -10234,6 +11180,12 @@ "smithy.api#documentation": "

The display name of the owner of the S3 bucket.

" } }, + "OwnerAccountId": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account identifier of the account that owns the S3 bucket.

" + } + }, "CreatedAt": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { @@ -11842,6 +12794,158 @@ "smithy.api#documentation": "

Provides information about the state of a patch on an instance based on the patch\n baseline that was used to patch the instance.

" } }, + "com.amazonaws.securityhub#AwsWafRateBasedRuleDetails": { + "type": "structure", + "members": { + "MetricName": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The name of the metrics for the rate-based rule.

" + } + }, + "Name": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The name of the rate-based rule.

" + } + }, + "RateKey": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The field that WAF uses to determine whether requests are likely arriving from single source and are subject to rate monitoring.

" + } + }, + "RateLimit": { + "target": "com.amazonaws.securityhub#Long", + "traits": { + "smithy.api#documentation": "

The maximum number of requests that have an identical value for the field specified in RateKey that are allowed within a five-minute period. If the number of requests exceeds RateLimit and the other predicates specified in the rule are met, WAF triggers the action for the rule.

" + } + }, + "RuleId": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The unique identifier for the rate-based rule.

" + } + }, + "MatchPredicates": { + "target": "com.amazonaws.securityhub#AwsWafRateBasedRuleMatchPredicateList", + "traits": { + "smithy.api#documentation": "

The predicates to include in the rate-based rule.

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

Details about a rate-based rule for global resources. A rate-based rule provides settings to indicate when to allow, block, or count a request. Rate-based rules include the number of requests that arrive over a specified period of time.

" + } + }, + "com.amazonaws.securityhub#AwsWafRateBasedRuleMatchPredicate": { + "type": "structure", + "members": { + "DataId": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The unique identifier for the predicate.

" + } + }, + "Negated": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

If set to true, then the rule actions are performed on requests that match the predicate settings.

\n

If set to false, then the rule actions are performed on all requests except those that match the predicate settings.\n

" + } + }, + "Type": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The type of predicate.

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

A match predicate. A predicate might look for characteristics such as specific IP addresses, geographic locations, or sizes.

" + } + }, + "com.amazonaws.securityhub#AwsWafRateBasedRuleMatchPredicateList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#AwsWafRateBasedRuleMatchPredicate" + } + }, + "com.amazonaws.securityhub#AwsWafRegionalRateBasedRuleDetails": { + "type": "structure", + "members": { + "MetricName": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The name of the metrics for the rate-based rule.

" + } + }, + "Name": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The name of the rate-based rule.

" + } + }, + "RateKey": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The field that WAF uses to determine whether requests are likely arriving from single source and are subject to rate monitoring.

" + } + }, + "RateLimit": { + "target": "com.amazonaws.securityhub#Long", + "traits": { + "smithy.api#documentation": "

The maximum number of requests that have an identical value for the field specified in RateKey that are allowed within a five-minute period. If the number of requests exceeds RateLimit and the other predicates specified in the rule are met, WAF triggers the action for the rule.

" + } + }, + "RuleId": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The unique identifier for the rate-based rule.

" + } + }, + "MatchPredicates": { + "target": "com.amazonaws.securityhub#AwsWafRegionalRateBasedRuleMatchPredicateList", + "traits": { + "smithy.api#documentation": "

The predicates to include in the rate-based rule.

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

contains details about a rate-based rule for Regional resources. A rate-based rule provides settings to indicate when to allow, block, or count a request. Rate-based rules include the number of requests that arrive over a specified period of time.

" + } + }, + "com.amazonaws.securityhub#AwsWafRegionalRateBasedRuleMatchPredicate": { + "type": "structure", + "members": { + "DataId": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The unique identifier for the predicate.

" + } + }, + "Negated": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

If set to true, then the rule actions are performed on requests that match the predicate settings.

\n

If set to false, then the rule actions are performed on all requests except those that match the predicate settings.

" + } + }, + "Type": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The type of predicate.

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

Details for a match predicate. A predicate might look for characteristics such as specific IP addresses, geographic locations, or sizes.

" + } + }, + "com.amazonaws.securityhub#AwsWafRegionalRateBasedRuleMatchPredicateList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#AwsWafRegionalRateBasedRuleMatchPredicate" + } + }, "com.amazonaws.securityhub#AwsWafWebAclDetails": { "type": "structure", "members": { @@ -11924,6 +13028,32 @@ "target": "com.amazonaws.securityhub#AwsWafWebAclRule" } }, + "com.amazonaws.securityhub#AwsXrayEncryptionConfigDetails": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The identifier of the KMS key that is used for encryption. Provided if Type is KMS.

" + } + }, + "Status": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The current status of the encryption configuration. When Status is UPDATING, X-Ray might use both the old and new encryption.

" + } + }, + "Type": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The type of encryption. KMS indicates that the encryption uses KMS keys. NONE indicates to use the default encryption.

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

Information about the encryption configuration for X-Ray.

" + } + }, "com.amazonaws.securityhub#BatchDisableStandards": { "type": "operation", "input": { @@ -12703,7 +13833,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a member association in Security Hub between the specified accounts and the account\n used to make the request, which is the administrator account. If you are integrated with\n Organizations, then the administrator account is designated by the organization management account.

\n

\n CreateMembers is always used to add accounts that are not organization\n members.

\n

For accounts that are managed using Organizations, CreateMembers is only used\n in the following cases:

\n \n

This action can only be used by an account that has Security Hub enabled. To enable Security Hub, you\n can use the EnableSecurityHub operation.

\n

For accounts that are not organization members, you create the account association and\n then send an invitation to the member account. To send the invitation, you use the\n InviteMembers operation. If the account owner accepts\n the invitation, the account becomes a member account in Security Hub.

\n

Accounts that are managed using Organizations do not receive an invitation. They\n automatically become a member account in Security Hub, and Security Hub is automatically enabled for those accounts. Note that Security Hub cannot be enabled automatically for the organization management account. The organization management account must enable Security Hub before the administrator account enables it as a member account.

\n

A permissions policy is added that permits the administrator account to view the findings\n generated in the member account. When Security Hub is enabled in a member account, the member account findings are\n also visible to the administrator account.

\n

To remove the association between the administrator and member accounts, use the DisassociateFromMasterAccount or DisassociateMembers operation.

", + "smithy.api#documentation": "

Creates a member association in Security Hub between the specified accounts and the account\n used to make the request, which is the administrator account. If you are integrated with\n Organizations, then the administrator account is designated by the organization management account.

\n

\n CreateMembers is always used to add accounts that are not organization\n members.

\n

For accounts that are managed using Organizations, CreateMembers is only used\n in the following cases:

\n \n

This action can only be used by an account that has Security Hub enabled. To enable Security Hub, you\n can use the EnableSecurityHub operation.

\n

For accounts that are not organization members, you create the account association and\n then send an invitation to the member account. To send the invitation, you use the\n InviteMembers operation. If the account owner accepts\n the invitation, the account becomes a member account in Security Hub.

\n

Accounts that are managed using Organizations do not receive an invitation. They\n automatically become a member account in Security Hub.

\n \n \n

A permissions policy is added that permits the administrator account to view the findings\n generated in the member account.

\n

To remove the association between the administrator and member accounts, use the DisassociateFromMasterAccount or DisassociateMembers operation.

", "smithy.api#http": { "method": "POST", "uri": "/members", @@ -16994,7 +18124,49 @@ "AwsEcrContainerImage": { "target": "com.amazonaws.securityhub#AwsEcrContainerImageDetails", "traits": { - "smithy.api#documentation": "

information about an Amazon ECR image.

" + "smithy.api#documentation": "

Information about an Amazon ECR image.

" + } + }, + "AwsOpenSearchServiceDomain": { + "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainDetails", + "traits": { + "smithy.api#documentation": "

Details about an Amazon OpenSearch Service domain.

" + } + }, + "AwsEc2VpcEndpointService": { + "target": "com.amazonaws.securityhub#AwsEc2VpcEndpointServiceDetails", + "traits": { + "smithy.api#documentation": "

Details about the service configuration for a VPC endpoint service.

" + } + }, + "AwsXrayEncryptionConfig": { + "target": "com.amazonaws.securityhub#AwsXrayEncryptionConfigDetails", + "traits": { + "smithy.api#documentation": "

Information about the encryption configuration for X-Ray.

" + } + }, + "AwsWafRateBasedRule": { + "target": "com.amazonaws.securityhub#AwsWafRateBasedRuleDetails", + "traits": { + "smithy.api#documentation": "

Details about a rate-based rule for global resources.

" + } + }, + "AwsWafRegionalRateBasedRule": { + "target": "com.amazonaws.securityhub#AwsWafRegionalRateBasedRuleDetails", + "traits": { + "smithy.api#documentation": "

Details about a rate-based rule for Regional resources.

" + } + }, + "AwsEcrRepository": { + "target": "com.amazonaws.securityhub#AwsEcrRepositoryDetails", + "traits": { + "smithy.api#documentation": "

Information about an Amazon Elastic Container Registry repository.

" + } + }, + "AwsEksCluster": { + "target": "com.amazonaws.securityhub#AwsEksClusterDetails", + "traits": { + "smithy.api#documentation": "

Details about an Amazon EKS cluster.

" } } }, diff --git a/codegen/sdk-codegen/aws-models/ssm.2014-11-06.json b/codegen/sdk-codegen/aws-models/ssm.2014-11-06.json index 323c611266f..0d49428c6b0 100644 --- a/codegen/sdk-codegen/aws-models/ssm.2014-11-06.json +++ b/codegen/sdk-codegen/aws-models/ssm.2014-11-06.json @@ -853,7 +853,7 @@ "Targets": { "target": "com.amazonaws.ssm#Targets", "traits": { - "smithy.api#documentation": "

The instances targeted by the request to create an association.

" + "smithy.api#documentation": "

The instances targeted by the request to create an association. You can target all instances\n in an Amazon Web Services account by specifying the InstanceIds key with a value of\n *.

" } }, "LastExecutionDate": { @@ -4457,7 +4457,7 @@ "Targets": { "target": "com.amazonaws.ssm#Targets", "traits": { - "smithy.api#documentation": "

The targets for the association. You can target instances by using tags, Amazon Web Services resource\n groups, all instances in an Amazon Web Services account, or individual instance IDs. For more information about\n choosing targets for an association, see Using targets and rate controls with State Manager associations in the\n Amazon Web Services Systems Manager User Guide.

" + "smithy.api#documentation": "

The targets for the association. You can target instances by using tags, Amazon Web Services resource\n groups, all instances in an Amazon Web Services account, or individual instance IDs. You can target all\n instances in an Amazon Web Services account by specifying the InstanceIds key with a value of\n *. For more information about choosing targets for an association, see Using targets and rate controls with State Manager associations in the\n Amazon Web Services Systems Manager User Guide.

" } }, "ScheduleExpression": { @@ -22357,7 +22357,7 @@ "OutputS3Region": { "target": "com.amazonaws.ssm#S3Region", "traits": { - "smithy.api#documentation": "

(Deprecated) You can no longer specify this parameter. The system ignores it. Instead,\n Amazon Web Services Systems Manager automatically determines the Region of the S3 bucket.

" + "smithy.api#documentation": "

The Amazon Web Services Region of the S3 bucket.

" } }, "OutputS3BucketName": { @@ -23396,6 +23396,12 @@ "smithy.api#documentation": "

The user-provided idempotency token. The token must be unique, is case insensitive, enforces\n the UUID format, and can't be reused.

" } }, + "AutoApprove": { + "target": "com.amazonaws.ssm#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the change request can be approved automatically without the need for\n manual approvals.

\n

If AutoApprovable is enabled in a change template, then setting\n AutoApprove to true in StartChangeRequestExecution\n creates a change request that bypasses approver review.

\n \n

Change Calendar restrictions are not bypassed in this scenario. If the state of an\n associated calendar is CLOSED, change freeze approvers must still grant permission\n for this change request to run. If they don't, the change won't be processed until the calendar\n state is again OPEN.

\n
" + } + }, "Runbooks": { "target": "com.amazonaws.ssm#Runbooks", "traits": { diff --git a/codegen/sdk-codegen/aws-models/synthetics.2017-10-11.json b/codegen/sdk-codegen/aws-models/synthetics.2017-10-11.json index 032966ac4c0..5c1211bab60 100644 --- a/codegen/sdk-codegen/aws-models/synthetics.2017-10-11.json +++ b/codegen/sdk-codegen/aws-models/synthetics.2017-10-11.json @@ -29,6 +29,34 @@ ] }, "shapes": { + "com.amazonaws.synthetics#ArtifactConfigInput": { + "type": "structure", + "members": { + "S3Encryption": { + "target": "com.amazonaws.synthetics#S3EncryptionConfig", + "traits": { + "smithy.api#documentation": "

A structure that contains the configuration of the encryption-at-rest settings for artifacts that the canary uploads\n to Amazon S3. \n Artifact encryption functionality is available only for canaries that use Synthetics runtime version \n syn-nodejs-puppeteer-3.3 or later. For more information, see\n Encrypting canary artifacts\n

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

A structure that contains the configuration for canary artifacts, including the \n encryption-at-rest settings for artifacts that the canary uploads to Amazon S3.

" + } + }, + "com.amazonaws.synthetics#ArtifactConfigOutput": { + "type": "structure", + "members": { + "S3Encryption": { + "target": "com.amazonaws.synthetics#S3EncryptionConfig", + "traits": { + "smithy.api#documentation": "

A structure that contains the configuration of encryption settings for canary artifacts that are stored in Amazon S3.

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

A structure that contains the configuration for canary artifacts, including \n the encryption-at-rest settings for artifacts that the canary uploads to Amazon S3.

" + } + }, "com.amazonaws.synthetics#BaseScreenshot": { "type": "structure", "members": { @@ -184,6 +212,12 @@ "traits": { "smithy.api#documentation": "

The list of key-value pairs that are associated with the canary.

" } + }, + "ArtifactConfig": { + "target": "com.amazonaws.synthetics#ArtifactConfigOutput", + "traits": { + "smithy.api#documentation": "

A structure that contains the configuration for canary artifacts, including \n the encryption-at-rest settings for artifacts that the canary uploads to Amazon S3.

" + } } }, "traits": { @@ -736,6 +770,12 @@ "traits": { "smithy.api#documentation": "

A list of key-value pairs to associate with the canary. \n You can associate as many as 50 tags with a canary.

\n

Tags can help you organize and categorize your\n resources. You can also use them to scope user permissions, by \n granting a user permission to access or change only the resources that have\n certain tag values.

" } + }, + "ArtifactConfig": { + "target": "com.amazonaws.synthetics#ArtifactConfigInput", + "traits": { + "smithy.api#documentation": "

A structure that contains the configuration for canary artifacts, including \n the encryption-at-rest settings for artifacts that the canary uploads to Amazon S3.

" + } } } }, @@ -990,6 +1030,21 @@ } } }, + "com.amazonaws.synthetics#EncryptionMode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "SSE_S3", + "name": "SSE_S3" + }, + { + "value": "SSE_KMS", + "name": "SSE_KMS" + } + ] + } + }, "com.amazonaws.synthetics#EnvironmentVariableName": { "type": "string", "traits": { @@ -1158,6 +1213,16 @@ "smithy.api#httpError": 500 } }, + "com.amazonaws.synthetics#KmsKeyArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "^arn:(aws[a-zA-Z-]*)?:kms:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:key/[\\w\\-\\/]+$" + } + }, "com.amazonaws.synthetics#ListTagsForResource": { "type": "operation", "input": { @@ -1337,6 +1402,26 @@ "target": "com.amazonaws.synthetics#RuntimeVersion" } }, + "com.amazonaws.synthetics#S3EncryptionConfig": { + "type": "structure", + "members": { + "EncryptionMode": { + "target": "com.amazonaws.synthetics#EncryptionMode", + "traits": { + "smithy.api#documentation": "

The encryption method to use for artifacts created by this canary. Specify SSE_S3 to use\n server-side encryption (SSE) with an Amazon S3-managed\n key. Specify SSE-KMS to use server-side encryption with a customer-managed KMS key.

\n

If you omit this parameter, an \n Amazon Web Services-managed KMS key is used.\n

" + } + }, + "KmsKeyArn": { + "target": "com.amazonaws.synthetics#KmsKeyArn", + "traits": { + "smithy.api#documentation": "

The ARN of the customer-managed KMS key to use, if you specify SSE-KMS\n for EncryptionMode\n

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

A structure that contains the configuration of encryption-at-rest settings for canary artifacts that the canary\n uploads to Amazon S3.

\n

For more information, see\n Encrypting canary artifacts\n

" + } + }, "com.amazonaws.synthetics#SecurityGroupId": { "type": "string" }, @@ -1796,6 +1881,18 @@ "traits": { "smithy.api#documentation": "

Defines the screenshots to use as the baseline for comparisons during visual monitoring comparisons during future runs of this canary. If you omit this \n parameter, no changes are made to any baseline screenshots that the canary might be using already.

\n

Visual monitoring is supported only on canaries running the syn-puppeteer-node-3.2\n runtime or later. For more information, see \n Visual monitoring and \n Visual monitoring blueprint\n

" } + }, + "ArtifactS3Location": { + "target": "com.amazonaws.synthetics#String", + "traits": { + "smithy.api#documentation": "

The location in Amazon S3 where Synthetics stores artifacts from the test runs of this canary. \n Artifacts include the log file, screenshots, and HAR files. The name of the\n S3 bucket can't include a period (.).

" + } + }, + "ArtifactConfig": { + "target": "com.amazonaws.synthetics#ArtifactConfigInput", + "traits": { + "smithy.api#documentation": "

A structure that contains the configuration for canary artifacts, \n including the encryption-at-rest settings for artifacts that \n the canary uploads to Amazon S3.

" + } } } }, diff --git a/codegen/sdk-codegen/aws-models/workmail.2017-10-01.json b/codegen/sdk-codegen/aws-models/workmail.2017-10-01.json index d9dbe5a1252..c5ca6abd42f 100644 --- a/codegen/sdk-codegen/aws-models/workmail.2017-10-01.json +++ b/codegen/sdk-codegen/aws-models/workmail.2017-10-01.json @@ -357,6 +357,12 @@ "com.amazonaws.workmail#Boolean": { "type": "boolean" }, + "com.amazonaws.workmail#BooleanObject": { + "type": "boolean", + "traits": { + "smithy.api#box": {} + } + }, "com.amazonaws.workmail#CancelMailboxExportJob": { "type": "operation", "input": { @@ -1632,6 +1638,50 @@ } } }, + "com.amazonaws.workmail#DescribeInboundDmarcSettings": { + "type": "operation", + "input": { + "target": "com.amazonaws.workmail#DescribeInboundDmarcSettingsRequest" + }, + "output": { + "target": "com.amazonaws.workmail#DescribeInboundDmarcSettingsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.workmail#OrganizationNotFoundException" + }, + { + "target": "com.amazonaws.workmail#OrganizationStateException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the settings in a DMARC policy for a specified organization.

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.workmail#DescribeInboundDmarcSettingsRequest": { + "type": "structure", + "members": { + "OrganizationId": { + "target": "com.amazonaws.workmail#OrganizationId", + "traits": { + "smithy.api#documentation": "

Lists the ID of the given organization.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.workmail#DescribeInboundDmarcSettingsResponse": { + "type": "structure", + "members": { + "Enforced": { + "target": "com.amazonaws.workmail#Boolean", + "traits": { + "smithy.api#documentation": "

Lists the enforcement setting of the applied policy.

" + } + } + } + }, "com.amazonaws.workmail#DescribeMailboxExportJob": { "type": "operation", "input": { @@ -4707,6 +4757,50 @@ "type": "structure", "members": {} }, + "com.amazonaws.workmail#PutInboundDmarcSettings": { + "type": "operation", + "input": { + "target": "com.amazonaws.workmail#PutInboundDmarcSettingsRequest" + }, + "output": { + "target": "com.amazonaws.workmail#PutInboundDmarcSettingsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.workmail#OrganizationNotFoundException" + }, + { + "target": "com.amazonaws.workmail#OrganizationStateException" + } + ], + "traits": { + "smithy.api#documentation": "

Enables or disables a DMARC policy for a given organization.

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.workmail#PutInboundDmarcSettingsRequest": { + "type": "structure", + "members": { + "OrganizationId": { + "target": "com.amazonaws.workmail#OrganizationId", + "traits": { + "smithy.api#documentation": "

The ID of the organization that you are applying the DMARC policy to.

", + "smithy.api#required": {} + } + }, + "Enforced": { + "target": "com.amazonaws.workmail#BooleanObject", + "traits": { + "smithy.api#documentation": "

Enforces or suspends a policy after it's applied.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.workmail#PutInboundDmarcSettingsResponse": { + "type": "structure", + "members": {} + }, "com.amazonaws.workmail#PutMailboxPermissions": { "type": "operation", "input": { @@ -6058,6 +6152,9 @@ { "target": "com.amazonaws.workmail#DescribeGroup" }, + { + "target": "com.amazonaws.workmail#DescribeInboundDmarcSettings" + }, { "target": "com.amazonaws.workmail#DescribeMailboxExportJob" }, @@ -6133,6 +6230,9 @@ { "target": "com.amazonaws.workmail#PutAccessControlRule" }, + { + "target": "com.amazonaws.workmail#PutInboundDmarcSettings" + }, { "target": "com.amazonaws.workmail#PutMailboxPermissions" }, diff --git a/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoint-prefix.json b/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoint-prefix.json index 7fb2cdd0d6a..697fc85029f 100644 --- a/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoint-prefix.json +++ b/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoint-prefix.json @@ -114,6 +114,7 @@ "Glacier": "glacier", "Global Accelerator": "globalaccelerator", "Glue": "glue", + "Grafana": "grafana", "Greengrass": "greengrass", "GreengrassV2": "greengrass", "GroundStation": "groundstation", diff --git a/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json b/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json index b835ee892b6..6c17c8e4ed9 100644 --- a/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json +++ b/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json @@ -1982,6 +1982,29 @@ "us-west-2" : { } } }, + "databrew" : { + "endpoints" : { + "af-south-1" : { }, + "ap-east-1" : { }, + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-north-1" : { }, + "eu-south-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "eu-west-3" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, "dataexchange" : { "endpoints" : { "ap-northeast-1" : { }, @@ -3573,6 +3596,70 @@ "us-west-2" : { } } }, + "grafana" : { + "endpoints" : { + "ap-northeast-1" : { + "credentialScope" : { + "region" : "ap-northeast-1" + }, + "hostname" : "grafana.ap-northeast-1.amazonaws.com" + }, + "ap-northeast-2" : { + "credentialScope" : { + "region" : "ap-northeast-2" + }, + "hostname" : "grafana.ap-northeast-2.amazonaws.com" + }, + "ap-southeast-1" : { + "credentialScope" : { + "region" : "ap-southeast-1" + }, + "hostname" : "grafana.ap-southeast-1.amazonaws.com" + }, + "ap-southeast-2" : { + "credentialScope" : { + "region" : "ap-southeast-2" + }, + "hostname" : "grafana.ap-southeast-2.amazonaws.com" + }, + "eu-central-1" : { + "credentialScope" : { + "region" : "eu-central-1" + }, + "hostname" : "grafana.eu-central-1.amazonaws.com" + }, + "eu-west-1" : { + "credentialScope" : { + "region" : "eu-west-1" + }, + "hostname" : "grafana.eu-west-1.amazonaws.com" + }, + "eu-west-2" : { + "credentialScope" : { + "region" : "eu-west-2" + }, + "hostname" : "grafana.eu-west-2.amazonaws.com" + }, + "us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "grafana.us-east-1.amazonaws.com" + }, + "us-east-2" : { + "credentialScope" : { + "region" : "us-east-2" + }, + "hostname" : "grafana.us-east-2.amazonaws.com" + }, + "us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "hostname" : "grafana.us-west-2.amazonaws.com" + } + } + }, "greengrass" : { "defaults" : { "protocols" : [ "https" ] @@ -3875,6 +3962,7 @@ "endpoints" : { "ap-northeast-1" : { }, "ap-northeast-2" : { }, + "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "eu-central-1" : { }, @@ -3899,6 +3987,12 @@ }, "hostname" : "data.iotevents.ap-northeast-2.amazonaws.com" }, + "ap-south-1" : { + "credentialScope" : { + "region" : "ap-south-1" + }, + "hostname" : "data.iotevents.ap-south-1.amazonaws.com" + }, "ap-southeast-1" : { "credentialScope" : { "region" : "ap-southeast-1" @@ -4100,6 +4194,35 @@ "us-west-2" : { } } }, + "kendra" : { + "endpoints" : { + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-west-1" : { }, + "fips-us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "kendra-fips.us-east-1.amazonaws.com" + }, + "fips-us-east-2" : { + "credentialScope" : { + "region" : "us-east-2" + }, + "hostname" : "kendra-fips.us-east-2.amazonaws.com" + }, + "fips-us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "hostname" : "kendra-fips.us-west-2.amazonaws.com" + }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-2" : { } + } + }, "kinesis" : { "endpoints" : { "af-south-1" : { }, @@ -5138,6 +5261,12 @@ }, "hostname" : "oidc.eu-west-3.amazonaws.com" }, + "sa-east-1" : { + "credentialScope" : { + "region" : "sa-east-1" + }, + "hostname" : "oidc.sa-east-1.amazonaws.com" + }, "us-east-1" : { "credentialScope" : { "region" : "us-east-1" @@ -7314,6 +7443,53 @@ "us-west-2" : { } } }, + "textract" : { + "endpoints" : { + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "eu-west-3" : { }, + "fips-ca-central-1" : { + "credentialScope" : { + "region" : "ca-central-1" + }, + "hostname" : "textract-fips.ca-central-1.amazonaws.com" + }, + "fips-us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "textract-fips.us-east-1.amazonaws.com" + }, + "fips-us-east-2" : { + "credentialScope" : { + "region" : "us-east-2" + }, + "hostname" : "textract-fips.us-east-2.amazonaws.com" + }, + "fips-us-west-1" : { + "credentialScope" : { + "region" : "us-west-1" + }, + "hostname" : "textract-fips.us-west-1.amazonaws.com" + }, + "fips-us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "hostname" : "textract-fips.us-west-2.amazonaws.com" + }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, "transcribe" : { "defaults" : { "protocols" : [ "https" ] @@ -8120,6 +8296,12 @@ "cn-northwest-1" : { } } }, + "databrew" : { + "endpoints" : { + "cn-north-1" : { }, + "cn-northwest-1" : { } + } + }, "dax" : { "endpoints" : { "cn-north-1" : { }, @@ -9280,6 +9462,11 @@ "us-gov-west-1" : { } } }, + "databrew" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, "datasync" : { "endpoints" : { "fips-us-gov-east-1" : { @@ -10643,6 +10830,24 @@ "us-gov-west-1" : { } } }, + "textract" : { + "endpoints" : { + "fips-us-gov-east-1" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "hostname" : "textract-fips.us-gov-east-1.amazonaws.com" + }, + "fips-us-gov-west-1" : { + "credentialScope" : { + "region" : "us-gov-west-1" + }, + "hostname" : "textract-fips.us-gov-west-1.amazonaws.com" + }, + "us-gov-east-1" : { }, + "us-gov-west-1" : { } + } + }, "transcribe" : { "defaults" : { "protocols" : [ "https" ] diff --git a/internal/repotools/go_module_metadata.go b/internal/repotools/go_module_metadata.go new file mode 100644 index 00000000000..63c74d11222 --- /dev/null +++ b/internal/repotools/go_module_metadata.go @@ -0,0 +1,6 @@ +// Code generated by internal/repotools/cmd/updatemodulemeta DO NOT EDIT. + +package repotools + +// goModuleVersion is the tagged release for this module +const goModuleVersion = "tip" diff --git a/service/amplifybackend/api_op_GetBackend.go b/service/amplifybackend/api_op_GetBackend.go index b6e3109187a..c38c479be34 100644 --- a/service/amplifybackend/api_op_GetBackend.go +++ b/service/amplifybackend/api_op_GetBackend.go @@ -42,6 +42,9 @@ type GetBackendInput struct { type GetBackendOutput struct { + // A stringified version of the cli.json file for your Amplify project. + AmplifyFeatureFlags *string + // A stringified version of the current configs for your Amplify project. AmplifyMetaConfig *string diff --git a/service/amplifybackend/deserializers.go b/service/amplifybackend/deserializers.go index c0e37943e0c..8491a4e5792 100644 --- a/service/amplifybackend/deserializers.go +++ b/service/amplifybackend/deserializers.go @@ -2335,6 +2335,15 @@ func awsRestjson1_deserializeOpDocumentGetBackendOutput(v **GetBackendOutput, va for key, value := range shape { switch key { + case "amplifyFeatureFlags": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected __string to be of type string, got %T instead", value) + } + sv.AmplifyFeatureFlags = ptr.String(jtv) + } + case "amplifyMetaConfig": if value != nil { jtv, ok := value.(string) diff --git a/service/applicationautoscaling/api_op_DeleteScalingPolicy.go b/service/applicationautoscaling/api_op_DeleteScalingPolicy.go index 7ff3a43a040..ffc0bfffd31 100644 --- a/service/applicationautoscaling/api_op_DeleteScalingPolicy.go +++ b/service/applicationautoscaling/api_op_DeleteScalingPolicy.go @@ -49,9 +49,9 @@ type DeleteScalingPolicyInput struct { // resource type is service and the unique identifier is the cluster name and // service name. Example: service/default/sample-webapp. // - // * Spot Fleet request - - // The resource type is spot-fleet-request and the unique identifier is the Spot - // Fleet request ID. Example: + // * Spot Fleet - The + // resource type is spot-fleet-request and the unique identifier is the Spot Fleet + // request ID. Example: // spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. // // * EMR cluster - @@ -74,8 +74,8 @@ type DeleteScalingPolicyInput struct { // The resource type is cluster and the unique identifier is the cluster name. // Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variant - The - // resource type is variant and the unique identifier is the resource ID. Example: + // * SageMaker endpoint variant - The resource + // type is variant and the unique identifier is the resource ID. Example: // endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not @@ -114,6 +114,9 @@ type DeleteScalingPolicyInput struct { // and the unique identifier is the replication group name. Example: // replication-group/mycluster. // + // * Neptune cluster - The resource type is cluster + // and the unique identifier is the cluster name. Example: cluster:mycluster. + // // This member is required. ResourceId *string @@ -127,65 +130,68 @@ type DeleteScalingPolicyInput struct { // instance count of an EMR Instance Group. // // * - // ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet - // request. + // ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet. + // + // * + // appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 + // fleet. // - // * appstream:fleet:DesiredCapacity - The desired capacity of an - // AppStream 2.0 fleet. + // * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a + // DynamoDB table. // - // * dynamodb:table:ReadCapacityUnits - The provisioned read + // * dynamodb:table:WriteCapacityUnits - The provisioned write // capacity for a DynamoDB table. // - // * dynamodb:table:WriteCapacityUnits - The - // provisioned write capacity for a DynamoDB table. + // * dynamodb:index:ReadCapacityUnits - The + // provisioned read capacity for a DynamoDB global secondary index. // // * - // dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB - // global secondary index. + // dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a + // DynamoDB global secondary index. // - // * dynamodb:index:WriteCapacityUnits - The provisioned - // write capacity for a DynamoDB global secondary index. + // * rds:cluster:ReadReplicaCount - The count of + // Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible + // edition and Aurora PostgreSQL-compatible edition. // // * - // rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB - // cluster. Available for Aurora MySQL-compatible edition and Aurora - // PostgreSQL-compatible edition. + // sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an + // SageMaker model endpoint variant. // - // * sagemaker:variant:DesiredInstanceCount - The - // number of EC2 instances for an Amazon SageMaker model endpoint variant. + // * custom-resource:ResourceType:Property - The + // scalable dimension for a custom resource provided by your own application or + // service. // - // * - // custom-resource:ResourceType:Property - The scalable dimension for a custom - // resource provided by your own application or service. + // * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend document classification + // endpoint. // - // * - // comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of - // inference units for an Amazon Comprehend document classification endpoint. + // * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend entity recognizer + // endpoint. // - // * - // comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of - // inference units for an Amazon Comprehend entity recognizer endpoint. + // * lambda:function:ProvisionedConcurrency - The provisioned + // concurrency for a Lambda function. // - // * - // lambda:function:ProvisionedConcurrency - The provisioned concurrency for a - // Lambda function. + // * cassandra:table:ReadCapacityUnits - The + // provisioned read capacity for an Amazon Keyspaces table. // - // * cassandra:table:ReadCapacityUnits - The provisioned read - // capacity for an Amazon Keyspaces table. + // * + // cassandra:table:WriteCapacityUnits - The provisioned write capacity for an + // Amazon Keyspaces table. // - // * cassandra:table:WriteCapacityUnits - - // The provisioned write capacity for an Amazon Keyspaces table. + // * kafka:broker-storage:VolumeSize - The provisioned + // volume size (in GiB) for brokers in an Amazon MSK cluster. // // * - // kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for - // brokers in an Amazon MSK cluster. + // elasticache:replication-group:NodeGroups - The number of node groups for an + // Amazon ElastiCache replication group. // - // * elasticache:replication-group:NodeGroups - - // The number of node groups for an Amazon ElastiCache replication group. + // * elasticache:replication-group:Replicas + // - The number of replicas per node group for an Amazon ElastiCache replication + // group. // - // * - // elasticache:replication-group:Replicas - The number of replicas per node group - // for an Amazon ElastiCache replication group. + // * neptune:cluster:ReadReplicaCount - The count of read replicas in an + // Amazon Neptune DB cluster. // // This member is required. ScalableDimension types.ScalableDimension diff --git a/service/applicationautoscaling/api_op_DeleteScheduledAction.go b/service/applicationautoscaling/api_op_DeleteScheduledAction.go index 48dc353a21f..eb649f80b79 100644 --- a/service/applicationautoscaling/api_op_DeleteScheduledAction.go +++ b/service/applicationautoscaling/api_op_DeleteScheduledAction.go @@ -39,9 +39,9 @@ type DeleteScheduledActionInput struct { // resource type is service and the unique identifier is the cluster name and // service name. Example: service/default/sample-webapp. // - // * Spot Fleet request - - // The resource type is spot-fleet-request and the unique identifier is the Spot - // Fleet request ID. Example: + // * Spot Fleet - The + // resource type is spot-fleet-request and the unique identifier is the Spot Fleet + // request ID. Example: // spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. // // * EMR cluster - @@ -64,8 +64,8 @@ type DeleteScheduledActionInput struct { // The resource type is cluster and the unique identifier is the cluster name. // Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variant - The - // resource type is variant and the unique identifier is the resource ID. Example: + // * SageMaker endpoint variant - The resource + // type is variant and the unique identifier is the resource ID. Example: // endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not @@ -104,6 +104,9 @@ type DeleteScheduledActionInput struct { // and the unique identifier is the replication group name. Example: // replication-group/mycluster. // + // * Neptune cluster - The resource type is cluster + // and the unique identifier is the cluster name. Example: cluster:mycluster. + // // This member is required. ResourceId *string @@ -117,65 +120,68 @@ type DeleteScheduledActionInput struct { // instance count of an EMR Instance Group. // // * - // ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet - // request. + // ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet. + // + // * + // appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 + // fleet. // - // * appstream:fleet:DesiredCapacity - The desired capacity of an - // AppStream 2.0 fleet. + // * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a + // DynamoDB table. // - // * dynamodb:table:ReadCapacityUnits - The provisioned read + // * dynamodb:table:WriteCapacityUnits - The provisioned write // capacity for a DynamoDB table. // - // * dynamodb:table:WriteCapacityUnits - The - // provisioned write capacity for a DynamoDB table. + // * dynamodb:index:ReadCapacityUnits - The + // provisioned read capacity for a DynamoDB global secondary index. // // * - // dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB - // global secondary index. + // dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a + // DynamoDB global secondary index. // - // * dynamodb:index:WriteCapacityUnits - The provisioned - // write capacity for a DynamoDB global secondary index. + // * rds:cluster:ReadReplicaCount - The count of + // Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible + // edition and Aurora PostgreSQL-compatible edition. // // * - // rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB - // cluster. Available for Aurora MySQL-compatible edition and Aurora - // PostgreSQL-compatible edition. + // sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an + // SageMaker model endpoint variant. // - // * sagemaker:variant:DesiredInstanceCount - The - // number of EC2 instances for an Amazon SageMaker model endpoint variant. + // * custom-resource:ResourceType:Property - The + // scalable dimension for a custom resource provided by your own application or + // service. // - // * - // custom-resource:ResourceType:Property - The scalable dimension for a custom - // resource provided by your own application or service. + // * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend document classification + // endpoint. // - // * - // comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of - // inference units for an Amazon Comprehend document classification endpoint. + // * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend entity recognizer + // endpoint. // - // * - // comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of - // inference units for an Amazon Comprehend entity recognizer endpoint. + // * lambda:function:ProvisionedConcurrency - The provisioned + // concurrency for a Lambda function. // - // * - // lambda:function:ProvisionedConcurrency - The provisioned concurrency for a - // Lambda function. + // * cassandra:table:ReadCapacityUnits - The + // provisioned read capacity for an Amazon Keyspaces table. // - // * cassandra:table:ReadCapacityUnits - The provisioned read - // capacity for an Amazon Keyspaces table. + // * + // cassandra:table:WriteCapacityUnits - The provisioned write capacity for an + // Amazon Keyspaces table. // - // * cassandra:table:WriteCapacityUnits - - // The provisioned write capacity for an Amazon Keyspaces table. + // * kafka:broker-storage:VolumeSize - The provisioned + // volume size (in GiB) for brokers in an Amazon MSK cluster. // // * - // kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for - // brokers in an Amazon MSK cluster. + // elasticache:replication-group:NodeGroups - The number of node groups for an + // Amazon ElastiCache replication group. // - // * elasticache:replication-group:NodeGroups - - // The number of node groups for an Amazon ElastiCache replication group. + // * elasticache:replication-group:Replicas + // - The number of replicas per node group for an Amazon ElastiCache replication + // group. // - // * - // elasticache:replication-group:Replicas - The number of replicas per node group - // for an Amazon ElastiCache replication group. + // * neptune:cluster:ReadReplicaCount - The count of read replicas in an + // Amazon Neptune DB cluster. // // This member is required. ScalableDimension types.ScalableDimension diff --git a/service/applicationautoscaling/api_op_DeregisterScalableTarget.go b/service/applicationautoscaling/api_op_DeregisterScalableTarget.go index c7d0aa9ec5a..df2d41ec2a8 100644 --- a/service/applicationautoscaling/api_op_DeregisterScalableTarget.go +++ b/service/applicationautoscaling/api_op_DeregisterScalableTarget.go @@ -41,9 +41,9 @@ type DeregisterScalableTargetInput struct { // resource type is service and the unique identifier is the cluster name and // service name. Example: service/default/sample-webapp. // - // * Spot Fleet request - - // The resource type is spot-fleet-request and the unique identifier is the Spot - // Fleet request ID. Example: + // * Spot Fleet - The + // resource type is spot-fleet-request and the unique identifier is the Spot Fleet + // request ID. Example: // spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. // // * EMR cluster - @@ -66,8 +66,8 @@ type DeregisterScalableTargetInput struct { // The resource type is cluster and the unique identifier is the cluster name. // Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variant - The - // resource type is variant and the unique identifier is the resource ID. Example: + // * SageMaker endpoint variant - The resource + // type is variant and the unique identifier is the resource ID. Example: // endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not @@ -106,6 +106,9 @@ type DeregisterScalableTargetInput struct { // and the unique identifier is the replication group name. Example: // replication-group/mycluster. // + // * Neptune cluster - The resource type is cluster + // and the unique identifier is the cluster name. Example: cluster:mycluster. + // // This member is required. ResourceId *string @@ -120,32 +123,31 @@ type DeregisterScalableTargetInput struct { // Instance Group. // // * ec2:spot-fleet-request:TargetCapacity - The target capacity - // of a Spot Fleet request. - // - // * appstream:fleet:DesiredCapacity - The desired - // capacity of an AppStream 2.0 fleet. + // of a Spot Fleet. // - // * dynamodb:table:ReadCapacityUnits - The - // provisioned read capacity for a DynamoDB table. + // * appstream:fleet:DesiredCapacity - The desired capacity of an + // AppStream 2.0 fleet. // - // * - // dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a - // DynamoDB table. + // * dynamodb:table:ReadCapacityUnits - The provisioned read + // capacity for a DynamoDB table. // - // * dynamodb:index:ReadCapacityUnits - The provisioned read - // capacity for a DynamoDB global secondary index. + // * dynamodb:table:WriteCapacityUnits - The + // provisioned write capacity for a DynamoDB table. // // * - // dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a - // DynamoDB global secondary index. + // dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB + // global secondary index. // - // * rds:cluster:ReadReplicaCount - The count of - // Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible - // edition and Aurora PostgreSQL-compatible edition. + // * dynamodb:index:WriteCapacityUnits - The provisioned + // write capacity for a DynamoDB global secondary index. // // * - // sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an - // Amazon SageMaker model endpoint variant. + // rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB + // cluster. Available for Aurora MySQL-compatible edition and Aurora + // PostgreSQL-compatible edition. + // + // * sagemaker:variant:DesiredInstanceCount - The + // number of EC2 instances for an SageMaker model endpoint variant. // // * // custom-resource:ResourceType:Property - The scalable dimension for a custom @@ -180,6 +182,9 @@ type DeregisterScalableTargetInput struct { // elasticache:replication-group:Replicas - The number of replicas per node group // for an Amazon ElastiCache replication group. // + // * neptune:cluster:ReadReplicaCount + // - The count of read replicas in an Amazon Neptune DB cluster. + // // This member is required. ScalableDimension types.ScalableDimension diff --git a/service/applicationautoscaling/api_op_DescribeScalableTargets.go b/service/applicationautoscaling/api_op_DescribeScalableTargets.go index 2d505eac6d3..e6d1adf73cf 100644 --- a/service/applicationautoscaling/api_op_DescribeScalableTargets.go +++ b/service/applicationautoscaling/api_op_DescribeScalableTargets.go @@ -56,9 +56,9 @@ type DescribeScalableTargetsInput struct { // resource type is service and the unique identifier is the cluster name and // service name. Example: service/default/sample-webapp. // - // * Spot Fleet request - - // The resource type is spot-fleet-request and the unique identifier is the Spot - // Fleet request ID. Example: + // * Spot Fleet - The + // resource type is spot-fleet-request and the unique identifier is the Spot Fleet + // request ID. Example: // spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. // // * EMR cluster - @@ -81,8 +81,8 @@ type DescribeScalableTargetsInput struct { // The resource type is cluster and the unique identifier is the cluster name. // Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variant - The - // resource type is variant and the unique identifier is the resource ID. Example: + // * SageMaker endpoint variant - The resource + // type is variant and the unique identifier is the resource ID. Example: // endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not @@ -120,6 +120,9 @@ type DescribeScalableTargetsInput struct { // Amazon ElastiCache replication group - The resource type is replication-group // and the unique identifier is the replication group name. Example: // replication-group/mycluster. + // + // * Neptune cluster - The resource type is cluster + // and the unique identifier is the cluster name. Example: cluster:mycluster. ResourceIds []string // The scalable dimension associated with the scalable target. This string consists @@ -134,32 +137,31 @@ type DescribeScalableTargetsInput struct { // Instance Group. // // * ec2:spot-fleet-request:TargetCapacity - The target capacity - // of a Spot Fleet request. - // - // * appstream:fleet:DesiredCapacity - The desired - // capacity of an AppStream 2.0 fleet. + // of a Spot Fleet. // - // * dynamodb:table:ReadCapacityUnits - The - // provisioned read capacity for a DynamoDB table. + // * appstream:fleet:DesiredCapacity - The desired capacity of an + // AppStream 2.0 fleet. // - // * - // dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a - // DynamoDB table. + // * dynamodb:table:ReadCapacityUnits - The provisioned read + // capacity for a DynamoDB table. // - // * dynamodb:index:ReadCapacityUnits - The provisioned read - // capacity for a DynamoDB global secondary index. + // * dynamodb:table:WriteCapacityUnits - The + // provisioned write capacity for a DynamoDB table. // // * - // dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a - // DynamoDB global secondary index. + // dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB + // global secondary index. // - // * rds:cluster:ReadReplicaCount - The count of - // Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible - // edition and Aurora PostgreSQL-compatible edition. + // * dynamodb:index:WriteCapacityUnits - The provisioned + // write capacity for a DynamoDB global secondary index. // // * - // sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an - // Amazon SageMaker model endpoint variant. + // rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB + // cluster. Available for Aurora MySQL-compatible edition and Aurora + // PostgreSQL-compatible edition. + // + // * sagemaker:variant:DesiredInstanceCount - The + // number of EC2 instances for an SageMaker model endpoint variant. // // * // custom-resource:ResourceType:Property - The scalable dimension for a custom @@ -193,6 +195,9 @@ type DescribeScalableTargetsInput struct { // * // elasticache:replication-group:Replicas - The number of replicas per node group // for an Amazon ElastiCache replication group. + // + // * neptune:cluster:ReadReplicaCount + // - The count of read replicas in an Amazon Neptune DB cluster. ScalableDimension types.ScalableDimension noSmithyDocumentSerde diff --git a/service/applicationautoscaling/api_op_DescribeScalingActivities.go b/service/applicationautoscaling/api_op_DescribeScalingActivities.go index 1a30b59ae94..1779b0d9abb 100644 --- a/service/applicationautoscaling/api_op_DescribeScalingActivities.go +++ b/service/applicationautoscaling/api_op_DescribeScalingActivities.go @@ -57,9 +57,9 @@ type DescribeScalingActivitiesInput struct { // resource type is service and the unique identifier is the cluster name and // service name. Example: service/default/sample-webapp. // - // * Spot Fleet request - - // The resource type is spot-fleet-request and the unique identifier is the Spot - // Fleet request ID. Example: + // * Spot Fleet - The + // resource type is spot-fleet-request and the unique identifier is the Spot Fleet + // request ID. Example: // spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. // // * EMR cluster - @@ -82,8 +82,8 @@ type DescribeScalingActivitiesInput struct { // The resource type is cluster and the unique identifier is the cluster name. // Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variant - The - // resource type is variant and the unique identifier is the resource ID. Example: + // * SageMaker endpoint variant - The resource + // type is variant and the unique identifier is the resource ID. Example: // endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not @@ -121,6 +121,9 @@ type DescribeScalingActivitiesInput struct { // Amazon ElastiCache replication group - The resource type is replication-group // and the unique identifier is the replication group name. Example: // replication-group/mycluster. + // + // * Neptune cluster - The resource type is cluster + // and the unique identifier is the cluster name. Example: cluster:mycluster. ResourceId *string // The scalable dimension. This string consists of the service namespace, resource @@ -134,17 +137,17 @@ type DescribeScalingActivitiesInput struct { // count of an EMR Instance Group. // // * ec2:spot-fleet-request:TargetCapacity - The - // target capacity of a Spot Fleet request. + // target capacity of a Spot Fleet. // - // * appstream:fleet:DesiredCapacity - - // The desired capacity of an AppStream 2.0 fleet. + // * appstream:fleet:DesiredCapacity - The + // desired capacity of an AppStream 2.0 fleet. // - // * - // dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB - // table. + // * dynamodb:table:ReadCapacityUnits + // - The provisioned read capacity for a DynamoDB table. // - // * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for - // a DynamoDB table. + // * + // dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a + // DynamoDB table. // // * dynamodb:index:ReadCapacityUnits - The provisioned read // capacity for a DynamoDB global secondary index. @@ -159,40 +162,43 @@ type DescribeScalingActivitiesInput struct { // // * // sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an - // Amazon SageMaker model endpoint variant. - // - // * - // custom-resource:ResourceType:Property - The scalable dimension for a custom - // resource provided by your own application or service. + // SageMaker model endpoint variant. // - // * - // comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of - // inference units for an Amazon Comprehend document classification endpoint. + // * custom-resource:ResourceType:Property - The + // scalable dimension for a custom resource provided by your own application or + // service. // - // * - // comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of - // inference units for an Amazon Comprehend entity recognizer endpoint. + // * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend document classification + // endpoint. // - // * - // lambda:function:ProvisionedConcurrency - The provisioned concurrency for a - // Lambda function. + // * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend entity recognizer + // endpoint. // - // * cassandra:table:ReadCapacityUnits - The provisioned read - // capacity for an Amazon Keyspaces table. + // * lambda:function:ProvisionedConcurrency - The provisioned + // concurrency for a Lambda function. // - // * cassandra:table:WriteCapacityUnits - - // The provisioned write capacity for an Amazon Keyspaces table. + // * cassandra:table:ReadCapacityUnits - The + // provisioned read capacity for an Amazon Keyspaces table. // // * - // kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for - // brokers in an Amazon MSK cluster. + // cassandra:table:WriteCapacityUnits - The provisioned write capacity for an + // Amazon Keyspaces table. // - // * elasticache:replication-group:NodeGroups - - // The number of node groups for an Amazon ElastiCache replication group. + // * kafka:broker-storage:VolumeSize - The provisioned + // volume size (in GiB) for brokers in an Amazon MSK cluster. // // * - // elasticache:replication-group:Replicas - The number of replicas per node group - // for an Amazon ElastiCache replication group. + // elasticache:replication-group:NodeGroups - The number of node groups for an + // Amazon ElastiCache replication group. + // + // * elasticache:replication-group:Replicas + // - The number of replicas per node group for an Amazon ElastiCache replication + // group. + // + // * neptune:cluster:ReadReplicaCount - The count of read replicas in an + // Amazon Neptune DB cluster. ScalableDimension types.ScalableDimension noSmithyDocumentSerde diff --git a/service/applicationautoscaling/api_op_DescribeScalingPolicies.go b/service/applicationautoscaling/api_op_DescribeScalingPolicies.go index f263b9b25c2..b2039e9ce8a 100644 --- a/service/applicationautoscaling/api_op_DescribeScalingPolicies.go +++ b/service/applicationautoscaling/api_op_DescribeScalingPolicies.go @@ -44,11 +44,11 @@ type DescribeScalingPoliciesInput struct { // This member is required. ServiceNamespace types.ServiceNamespace - // The maximum number of scalable targets. This value can be between 1 and 50. The - // default value is 50. If this parameter is used, the operation returns up to + // The maximum number of scalable targets. This value can be between 1 and 10. The + // default value is 10. If this parameter is used, the operation returns up to // MaxResults results at a time, along with a NextToken value. To get the next set // of results, include the NextToken value in a subsequent call. If this parameter - // is not used, the operation returns up to 50 results and a NextToken value, if + // is not used, the operation returns up to 10 results and a NextToken value, if // applicable. MaxResults *int32 @@ -65,9 +65,9 @@ type DescribeScalingPoliciesInput struct { // resource type is service and the unique identifier is the cluster name and // service name. Example: service/default/sample-webapp. // - // * Spot Fleet request - - // The resource type is spot-fleet-request and the unique identifier is the Spot - // Fleet request ID. Example: + // * Spot Fleet - The + // resource type is spot-fleet-request and the unique identifier is the Spot Fleet + // request ID. Example: // spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. // // * EMR cluster - @@ -90,8 +90,8 @@ type DescribeScalingPoliciesInput struct { // The resource type is cluster and the unique identifier is the cluster name. // Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variant - The - // resource type is variant and the unique identifier is the resource ID. Example: + // * SageMaker endpoint variant - The resource + // type is variant and the unique identifier is the resource ID. Example: // endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not @@ -129,6 +129,9 @@ type DescribeScalingPoliciesInput struct { // Amazon ElastiCache replication group - The resource type is replication-group // and the unique identifier is the replication group name. Example: // replication-group/mycluster. + // + // * Neptune cluster - The resource type is cluster + // and the unique identifier is the cluster name. Example: cluster:mycluster. ResourceId *string // The scalable dimension. This string consists of the service namespace, resource @@ -142,17 +145,17 @@ type DescribeScalingPoliciesInput struct { // count of an EMR Instance Group. // // * ec2:spot-fleet-request:TargetCapacity - The - // target capacity of a Spot Fleet request. + // target capacity of a Spot Fleet. // - // * appstream:fleet:DesiredCapacity - - // The desired capacity of an AppStream 2.0 fleet. + // * appstream:fleet:DesiredCapacity - The + // desired capacity of an AppStream 2.0 fleet. // - // * - // dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB - // table. + // * dynamodb:table:ReadCapacityUnits + // - The provisioned read capacity for a DynamoDB table. // - // * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for - // a DynamoDB table. + // * + // dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a + // DynamoDB table. // // * dynamodb:index:ReadCapacityUnits - The provisioned read // capacity for a DynamoDB global secondary index. @@ -167,40 +170,43 @@ type DescribeScalingPoliciesInput struct { // // * // sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an - // Amazon SageMaker model endpoint variant. - // - // * - // custom-resource:ResourceType:Property - The scalable dimension for a custom - // resource provided by your own application or service. + // SageMaker model endpoint variant. // - // * - // comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of - // inference units for an Amazon Comprehend document classification endpoint. + // * custom-resource:ResourceType:Property - The + // scalable dimension for a custom resource provided by your own application or + // service. // - // * - // comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of - // inference units for an Amazon Comprehend entity recognizer endpoint. + // * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend document classification + // endpoint. // - // * - // lambda:function:ProvisionedConcurrency - The provisioned concurrency for a - // Lambda function. + // * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend entity recognizer + // endpoint. // - // * cassandra:table:ReadCapacityUnits - The provisioned read - // capacity for an Amazon Keyspaces table. + // * lambda:function:ProvisionedConcurrency - The provisioned + // concurrency for a Lambda function. // - // * cassandra:table:WriteCapacityUnits - - // The provisioned write capacity for an Amazon Keyspaces table. + // * cassandra:table:ReadCapacityUnits - The + // provisioned read capacity for an Amazon Keyspaces table. // // * - // kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for - // brokers in an Amazon MSK cluster. + // cassandra:table:WriteCapacityUnits - The provisioned write capacity for an + // Amazon Keyspaces table. // - // * elasticache:replication-group:NodeGroups - - // The number of node groups for an Amazon ElastiCache replication group. + // * kafka:broker-storage:VolumeSize - The provisioned + // volume size (in GiB) for brokers in an Amazon MSK cluster. // // * - // elasticache:replication-group:Replicas - The number of replicas per node group - // for an Amazon ElastiCache replication group. + // elasticache:replication-group:NodeGroups - The number of node groups for an + // Amazon ElastiCache replication group. + // + // * elasticache:replication-group:Replicas + // - The number of replicas per node group for an Amazon ElastiCache replication + // group. + // + // * neptune:cluster:ReadReplicaCount - The count of read replicas in an + // Amazon Neptune DB cluster. ScalableDimension types.ScalableDimension noSmithyDocumentSerde @@ -295,11 +301,11 @@ var _ DescribeScalingPoliciesAPIClient = (*Client)(nil) // DescribeScalingPoliciesPaginatorOptions is the paginator options for // DescribeScalingPolicies type DescribeScalingPoliciesPaginatorOptions struct { - // The maximum number of scalable targets. This value can be between 1 and 50. The - // default value is 50. If this parameter is used, the operation returns up to + // The maximum number of scalable targets. This value can be between 1 and 10. The + // default value is 10. If this parameter is used, the operation returns up to // MaxResults results at a time, along with a NextToken value. To get the next set // of results, include the NextToken value in a subsequent call. If this parameter - // is not used, the operation returns up to 50 results and a NextToken value, if + // is not used, the operation returns up to 10 results and a NextToken value, if // applicable. Limit int32 diff --git a/service/applicationautoscaling/api_op_DescribeScheduledActions.go b/service/applicationautoscaling/api_op_DescribeScheduledActions.go index c0cdc6c6713..0e898380f80 100644 --- a/service/applicationautoscaling/api_op_DescribeScheduledActions.go +++ b/service/applicationautoscaling/api_op_DescribeScheduledActions.go @@ -62,9 +62,9 @@ type DescribeScheduledActionsInput struct { // resource type is service and the unique identifier is the cluster name and // service name. Example: service/default/sample-webapp. // - // * Spot Fleet request - - // The resource type is spot-fleet-request and the unique identifier is the Spot - // Fleet request ID. Example: + // * Spot Fleet - The + // resource type is spot-fleet-request and the unique identifier is the Spot Fleet + // request ID. Example: // spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. // // * EMR cluster - @@ -87,8 +87,8 @@ type DescribeScheduledActionsInput struct { // The resource type is cluster and the unique identifier is the cluster name. // Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variant - The - // resource type is variant and the unique identifier is the resource ID. Example: + // * SageMaker endpoint variant - The resource + // type is variant and the unique identifier is the resource ID. Example: // endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not @@ -126,6 +126,9 @@ type DescribeScheduledActionsInput struct { // Amazon ElastiCache replication group - The resource type is replication-group // and the unique identifier is the replication group name. Example: // replication-group/mycluster. + // + // * Neptune cluster - The resource type is cluster + // and the unique identifier is the cluster name. Example: cluster:mycluster. ResourceId *string // The scalable dimension. This string consists of the service namespace, resource @@ -139,17 +142,17 @@ type DescribeScheduledActionsInput struct { // count of an EMR Instance Group. // // * ec2:spot-fleet-request:TargetCapacity - The - // target capacity of a Spot Fleet request. + // target capacity of a Spot Fleet. // - // * appstream:fleet:DesiredCapacity - - // The desired capacity of an AppStream 2.0 fleet. + // * appstream:fleet:DesiredCapacity - The + // desired capacity of an AppStream 2.0 fleet. // - // * - // dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB - // table. + // * dynamodb:table:ReadCapacityUnits + // - The provisioned read capacity for a DynamoDB table. // - // * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for - // a DynamoDB table. + // * + // dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a + // DynamoDB table. // // * dynamodb:index:ReadCapacityUnits - The provisioned read // capacity for a DynamoDB global secondary index. @@ -164,40 +167,43 @@ type DescribeScheduledActionsInput struct { // // * // sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an - // Amazon SageMaker model endpoint variant. - // - // * - // custom-resource:ResourceType:Property - The scalable dimension for a custom - // resource provided by your own application or service. + // SageMaker model endpoint variant. // - // * - // comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of - // inference units for an Amazon Comprehend document classification endpoint. + // * custom-resource:ResourceType:Property - The + // scalable dimension for a custom resource provided by your own application or + // service. // - // * - // comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of - // inference units for an Amazon Comprehend entity recognizer endpoint. + // * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend document classification + // endpoint. // - // * - // lambda:function:ProvisionedConcurrency - The provisioned concurrency for a - // Lambda function. + // * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend entity recognizer + // endpoint. // - // * cassandra:table:ReadCapacityUnits - The provisioned read - // capacity for an Amazon Keyspaces table. + // * lambda:function:ProvisionedConcurrency - The provisioned + // concurrency for a Lambda function. // - // * cassandra:table:WriteCapacityUnits - - // The provisioned write capacity for an Amazon Keyspaces table. + // * cassandra:table:ReadCapacityUnits - The + // provisioned read capacity for an Amazon Keyspaces table. // // * - // kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for - // brokers in an Amazon MSK cluster. + // cassandra:table:WriteCapacityUnits - The provisioned write capacity for an + // Amazon Keyspaces table. // - // * elasticache:replication-group:NodeGroups - - // The number of node groups for an Amazon ElastiCache replication group. + // * kafka:broker-storage:VolumeSize - The provisioned + // volume size (in GiB) for brokers in an Amazon MSK cluster. // // * - // elasticache:replication-group:Replicas - The number of replicas per node group - // for an Amazon ElastiCache replication group. + // elasticache:replication-group:NodeGroups - The number of node groups for an + // Amazon ElastiCache replication group. + // + // * elasticache:replication-group:Replicas + // - The number of replicas per node group for an Amazon ElastiCache replication + // group. + // + // * neptune:cluster:ReadReplicaCount - The count of read replicas in an + // Amazon Neptune DB cluster. ScalableDimension types.ScalableDimension // The names of the scheduled actions to describe. diff --git a/service/applicationautoscaling/api_op_PutScalingPolicy.go b/service/applicationautoscaling/api_op_PutScalingPolicy.go index 904b97ad09d..d4f8677c244 100644 --- a/service/applicationautoscaling/api_op_PutScalingPolicy.go +++ b/service/applicationautoscaling/api_op_PutScalingPolicy.go @@ -68,9 +68,9 @@ type PutScalingPolicyInput struct { // resource type is service and the unique identifier is the cluster name and // service name. Example: service/default/sample-webapp. // - // * Spot Fleet request - - // The resource type is spot-fleet-request and the unique identifier is the Spot - // Fleet request ID. Example: + // * Spot Fleet - The + // resource type is spot-fleet-request and the unique identifier is the Spot Fleet + // request ID. Example: // spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. // // * EMR cluster - @@ -93,8 +93,8 @@ type PutScalingPolicyInput struct { // The resource type is cluster and the unique identifier is the cluster name. // Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variant - The - // resource type is variant and the unique identifier is the resource ID. Example: + // * SageMaker endpoint variant - The resource + // type is variant and the unique identifier is the resource ID. Example: // endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not @@ -133,6 +133,9 @@ type PutScalingPolicyInput struct { // and the unique identifier is the replication group name. Example: // replication-group/mycluster. // + // * Neptune cluster - The resource type is cluster + // and the unique identifier is the cluster name. Example: cluster:mycluster. + // // This member is required. ResourceId *string @@ -146,65 +149,68 @@ type PutScalingPolicyInput struct { // instance count of an EMR Instance Group. // // * - // ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet - // request. + // ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet. + // + // * + // appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 + // fleet. // - // * appstream:fleet:DesiredCapacity - The desired capacity of an - // AppStream 2.0 fleet. + // * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a + // DynamoDB table. // - // * dynamodb:table:ReadCapacityUnits - The provisioned read + // * dynamodb:table:WriteCapacityUnits - The provisioned write // capacity for a DynamoDB table. // - // * dynamodb:table:WriteCapacityUnits - The - // provisioned write capacity for a DynamoDB table. + // * dynamodb:index:ReadCapacityUnits - The + // provisioned read capacity for a DynamoDB global secondary index. // // * - // dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB - // global secondary index. + // dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a + // DynamoDB global secondary index. // - // * dynamodb:index:WriteCapacityUnits - The provisioned - // write capacity for a DynamoDB global secondary index. + // * rds:cluster:ReadReplicaCount - The count of + // Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible + // edition and Aurora PostgreSQL-compatible edition. // // * - // rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB - // cluster. Available for Aurora MySQL-compatible edition and Aurora - // PostgreSQL-compatible edition. + // sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an + // SageMaker model endpoint variant. // - // * sagemaker:variant:DesiredInstanceCount - The - // number of EC2 instances for an Amazon SageMaker model endpoint variant. + // * custom-resource:ResourceType:Property - The + // scalable dimension for a custom resource provided by your own application or + // service. // - // * - // custom-resource:ResourceType:Property - The scalable dimension for a custom - // resource provided by your own application or service. + // * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend document classification + // endpoint. // - // * - // comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of - // inference units for an Amazon Comprehend document classification endpoint. + // * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend entity recognizer + // endpoint. // - // * - // comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of - // inference units for an Amazon Comprehend entity recognizer endpoint. + // * lambda:function:ProvisionedConcurrency - The provisioned + // concurrency for a Lambda function. // - // * - // lambda:function:ProvisionedConcurrency - The provisioned concurrency for a - // Lambda function. + // * cassandra:table:ReadCapacityUnits - The + // provisioned read capacity for an Amazon Keyspaces table. // - // * cassandra:table:ReadCapacityUnits - The provisioned read - // capacity for an Amazon Keyspaces table. + // * + // cassandra:table:WriteCapacityUnits - The provisioned write capacity for an + // Amazon Keyspaces table. // - // * cassandra:table:WriteCapacityUnits - - // The provisioned write capacity for an Amazon Keyspaces table. + // * kafka:broker-storage:VolumeSize - The provisioned + // volume size (in GiB) for brokers in an Amazon MSK cluster. // // * - // kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for - // brokers in an Amazon MSK cluster. + // elasticache:replication-group:NodeGroups - The number of node groups for an + // Amazon ElastiCache replication group. // - // * elasticache:replication-group:NodeGroups - - // The number of node groups for an Amazon ElastiCache replication group. + // * elasticache:replication-group:Replicas + // - The number of replicas per node group for an Amazon ElastiCache replication + // group. // - // * - // elasticache:replication-group:Replicas - The number of replicas per node group - // for an Amazon ElastiCache replication group. + // * neptune:cluster:ReadReplicaCount - The count of read replicas in an + // Amazon Neptune DB cluster. // // This member is required. ScalableDimension types.ScalableDimension @@ -219,9 +225,8 @@ type PutScalingPolicyInput struct { // The policy type. This parameter is required if you are creating a scaling // policy. The following policy types are supported: TargetTrackingScaling—Not // supported for Amazon EMR StepScaling—Not supported for DynamoDB, Amazon - // Comprehend, Lambda, Amazon Keyspaces (for Apache Cassandra), Amazon MSK, or - // Amazon ElastiCache for Redis. For more information, see Target tracking scaling - // policies + // Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or + // Neptune. For more information, see Target tracking scaling policies // (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) // and Step scaling policies // (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) diff --git a/service/applicationautoscaling/api_op_PutScheduledAction.go b/service/applicationautoscaling/api_op_PutScheduledAction.go index 8958e99880b..945f8140b1b 100644 --- a/service/applicationautoscaling/api_op_PutScheduledAction.go +++ b/service/applicationautoscaling/api_op_PutScheduledAction.go @@ -51,9 +51,9 @@ type PutScheduledActionInput struct { // resource type is service and the unique identifier is the cluster name and // service name. Example: service/default/sample-webapp. // - // * Spot Fleet request - - // The resource type is spot-fleet-request and the unique identifier is the Spot - // Fleet request ID. Example: + // * Spot Fleet - The + // resource type is spot-fleet-request and the unique identifier is the Spot Fleet + // request ID. Example: // spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. // // * EMR cluster - @@ -76,8 +76,8 @@ type PutScheduledActionInput struct { // The resource type is cluster and the unique identifier is the cluster name. // Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variant - The - // resource type is variant and the unique identifier is the resource ID. Example: + // * SageMaker endpoint variant - The resource + // type is variant and the unique identifier is the resource ID. Example: // endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not @@ -116,6 +116,9 @@ type PutScheduledActionInput struct { // and the unique identifier is the replication group name. Example: // replication-group/mycluster. // + // * Neptune cluster - The resource type is cluster + // and the unique identifier is the cluster name. Example: cluster:mycluster. + // // This member is required. ResourceId *string @@ -129,65 +132,68 @@ type PutScheduledActionInput struct { // instance count of an EMR Instance Group. // // * - // ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet - // request. + // ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet. + // + // * + // appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 + // fleet. // - // * appstream:fleet:DesiredCapacity - The desired capacity of an - // AppStream 2.0 fleet. + // * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a + // DynamoDB table. // - // * dynamodb:table:ReadCapacityUnits - The provisioned read + // * dynamodb:table:WriteCapacityUnits - The provisioned write // capacity for a DynamoDB table. // - // * dynamodb:table:WriteCapacityUnits - The - // provisioned write capacity for a DynamoDB table. + // * dynamodb:index:ReadCapacityUnits - The + // provisioned read capacity for a DynamoDB global secondary index. // // * - // dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB - // global secondary index. + // dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a + // DynamoDB global secondary index. // - // * dynamodb:index:WriteCapacityUnits - The provisioned - // write capacity for a DynamoDB global secondary index. + // * rds:cluster:ReadReplicaCount - The count of + // Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible + // edition and Aurora PostgreSQL-compatible edition. // // * - // rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB - // cluster. Available for Aurora MySQL-compatible edition and Aurora - // PostgreSQL-compatible edition. + // sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an + // SageMaker model endpoint variant. // - // * sagemaker:variant:DesiredInstanceCount - The - // number of EC2 instances for an Amazon SageMaker model endpoint variant. + // * custom-resource:ResourceType:Property - The + // scalable dimension for a custom resource provided by your own application or + // service. // - // * - // custom-resource:ResourceType:Property - The scalable dimension for a custom - // resource provided by your own application or service. + // * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend document classification + // endpoint. // - // * - // comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of - // inference units for an Amazon Comprehend document classification endpoint. + // * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend entity recognizer + // endpoint. // - // * - // comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of - // inference units for an Amazon Comprehend entity recognizer endpoint. + // * lambda:function:ProvisionedConcurrency - The provisioned + // concurrency for a Lambda function. // - // * - // lambda:function:ProvisionedConcurrency - The provisioned concurrency for a - // Lambda function. + // * cassandra:table:ReadCapacityUnits - The + // provisioned read capacity for an Amazon Keyspaces table. // - // * cassandra:table:ReadCapacityUnits - The provisioned read - // capacity for an Amazon Keyspaces table. + // * + // cassandra:table:WriteCapacityUnits - The provisioned write capacity for an + // Amazon Keyspaces table. // - // * cassandra:table:WriteCapacityUnits - - // The provisioned write capacity for an Amazon Keyspaces table. + // * kafka:broker-storage:VolumeSize - The provisioned + // volume size (in GiB) for brokers in an Amazon MSK cluster. // // * - // kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for - // brokers in an Amazon MSK cluster. + // elasticache:replication-group:NodeGroups - The number of node groups for an + // Amazon ElastiCache replication group. // - // * elasticache:replication-group:NodeGroups - - // The number of node groups for an Amazon ElastiCache replication group. + // * elasticache:replication-group:Replicas + // - The number of replicas per node group for an Amazon ElastiCache replication + // group. // - // * - // elasticache:replication-group:Replicas - The number of replicas per node group - // for an Amazon ElastiCache replication group. + // * neptune:cluster:ReadReplicaCount - The count of read replicas in an + // Amazon Neptune DB cluster. // // This member is required. ScalableDimension types.ScalableDimension diff --git a/service/applicationautoscaling/api_op_RegisterScalableTarget.go b/service/applicationautoscaling/api_op_RegisterScalableTarget.go index a844efe05d2..11b593d5718 100644 --- a/service/applicationautoscaling/api_op_RegisterScalableTarget.go +++ b/service/applicationautoscaling/api_op_RegisterScalableTarget.go @@ -31,7 +31,12 @@ import ( // To update a scalable target, specify the parameters that you want to change. // Include the parameters that identify the scalable target: resource ID, scalable // dimension, and namespace. Any parameters that you don't specify are not changed -// by this update request. +// by this update request. If you call the RegisterScalableTarget API to update an +// existing scalable target, Application Auto Scaling retrieves the current +// capacity of the resource. If it is below the minimum capacity or above the +// maximum capacity, Application Auto Scaling adjusts the capacity of the scalable +// target to place it within these bounds, even if you don't include the +// MinCapacity or MaxCapacity request parameters. func (c *Client) RegisterScalableTarget(ctx context.Context, params *RegisterScalableTargetInput, optFns ...func(*Options)) (*RegisterScalableTargetOutput, error) { if params == nil { params = &RegisterScalableTargetInput{} @@ -56,9 +61,9 @@ type RegisterScalableTargetInput struct { // resource type is service and the unique identifier is the cluster name and // service name. Example: service/default/sample-webapp. // - // * Spot Fleet request - - // The resource type is spot-fleet-request and the unique identifier is the Spot - // Fleet request ID. Example: + // * Spot Fleet - The + // resource type is spot-fleet-request and the unique identifier is the Spot Fleet + // request ID. Example: // spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. // // * EMR cluster - @@ -81,8 +86,8 @@ type RegisterScalableTargetInput struct { // The resource type is cluster and the unique identifier is the cluster name. // Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variant - The - // resource type is variant and the unique identifier is the resource ID. Example: + // * SageMaker endpoint variant - The resource + // type is variant and the unique identifier is the resource ID. Example: // endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not @@ -121,6 +126,9 @@ type RegisterScalableTargetInput struct { // and the unique identifier is the replication group name. Example: // replication-group/mycluster. // + // * Neptune cluster - The resource type is cluster + // and the unique identifier is the cluster name. Example: cluster:mycluster. + // // This member is required. ResourceId *string @@ -135,32 +143,31 @@ type RegisterScalableTargetInput struct { // Instance Group. // // * ec2:spot-fleet-request:TargetCapacity - The target capacity - // of a Spot Fleet request. - // - // * appstream:fleet:DesiredCapacity - The desired - // capacity of an AppStream 2.0 fleet. + // of a Spot Fleet. // - // * dynamodb:table:ReadCapacityUnits - The - // provisioned read capacity for a DynamoDB table. + // * appstream:fleet:DesiredCapacity - The desired capacity of an + // AppStream 2.0 fleet. // - // * - // dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a - // DynamoDB table. + // * dynamodb:table:ReadCapacityUnits - The provisioned read + // capacity for a DynamoDB table. // - // * dynamodb:index:ReadCapacityUnits - The provisioned read - // capacity for a DynamoDB global secondary index. + // * dynamodb:table:WriteCapacityUnits - The + // provisioned write capacity for a DynamoDB table. // // * - // dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a - // DynamoDB global secondary index. + // dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB + // global secondary index. // - // * rds:cluster:ReadReplicaCount - The count of - // Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible - // edition and Aurora PostgreSQL-compatible edition. + // * dynamodb:index:WriteCapacityUnits - The provisioned + // write capacity for a DynamoDB global secondary index. // // * - // sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an - // Amazon SageMaker model endpoint variant. + // rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB + // cluster. Available for Aurora MySQL-compatible edition and Aurora + // PostgreSQL-compatible edition. + // + // * sagemaker:variant:DesiredInstanceCount - The + // number of EC2 instances for an SageMaker model endpoint variant. // // * // custom-resource:ResourceType:Property - The scalable dimension for a custom @@ -195,6 +202,9 @@ type RegisterScalableTargetInput struct { // elasticache:replication-group:Replicas - The number of replicas per node group // for an Amazon ElastiCache replication group. // + // * neptune:cluster:ReadReplicaCount + // - The count of read replicas in an Amazon Neptune DB cluster. + // // This member is required. ScalableDimension types.ScalableDimension diff --git a/service/applicationautoscaling/doc.go b/service/applicationautoscaling/doc.go index 42dc35eee40..24a2f93de1d 100644 --- a/service/applicationautoscaling/doc.go +++ b/service/applicationautoscaling/doc.go @@ -32,30 +32,32 @@ // * Amazon Managed Streaming // for Apache Kafka broker storage // -// * Amazon SageMaker endpoint variants +// * Amazon Neptune clusters // -// * Spot -// Fleet (Amazon EC2) requests +// * Amazon SageMaker +// endpoint variants // -// * Custom resources provided by your own -// applications or services +// * Spot Fleets (Amazon EC2) // -// API Summary The Application Auto Scaling service API -// includes three key sets of actions: +// * Custom resources provided by +// your own applications or services // -// * Register and manage scalable targets - -// Register Amazon Web Services or custom resources as scalable targets (a resource -// that Application Auto Scaling can scale), set minimum and maximum capacity -// limits, and retrieve information on existing scalable targets. +// API Summary The Application Auto Scaling +// service API includes three key sets of actions: // -// * Configure and -// manage automatic scaling - Define scaling policies to dynamically scale your -// resources in response to CloudWatch alarms, schedule one-time or recurring -// scaling actions, and retrieve your recent scaling activity history. +// * Register and manage scalable +// targets - Register Amazon Web Services or custom resources as scalable targets +// (a resource that Application Auto Scaling can scale), set minimum and maximum +// capacity limits, and retrieve information on existing scalable targets. // -// * Suspend -// and resume scaling - Temporarily suspend and later resume automatic scaling by -// calling the RegisterScalableTarget +// * +// Configure and manage automatic scaling - Define scaling policies to dynamically +// scale your resources in response to CloudWatch alarms, schedule one-time or +// recurring scaling actions, and retrieve your recent scaling activity history. +// +// * +// Suspend and resume scaling - Temporarily suspend and later resume automatic +// scaling by calling the RegisterScalableTarget // (https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html) // API action for any Application Auto Scaling scalable target. You can suspend and // resume (individually or in combination) scale-out activities that are triggered diff --git a/service/applicationautoscaling/types/enums.go b/service/applicationautoscaling/types/enums.go index 99173cf61a9..979ef766659 100644 --- a/service/applicationautoscaling/types/enums.go +++ b/service/applicationautoscaling/types/enums.go @@ -90,6 +90,7 @@ const ( MetricTypeElastiCachePrimaryEngineCPUUtilization MetricType = "ElastiCachePrimaryEngineCPUUtilization" MetricTypeElastiCacheReplicaEngineCPUUtilization MetricType = "ElastiCacheReplicaEngineCPUUtilization" MetricTypeElastiCacheDatabaseMemoryUsageCountedForEvictPercentage MetricType = "ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage" + MetricTypeNeptuneReaderAverageCPUUtilization MetricType = "NeptuneReaderAverageCPUUtilization" ) // Values returns all known values for MetricType. Note that this can be expanded @@ -117,6 +118,7 @@ func (MetricType) Values() []MetricType { "ElastiCachePrimaryEngineCPUUtilization", "ElastiCacheReplicaEngineCPUUtilization", "ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage", + "NeptuneReaderAverageCPUUtilization", } } @@ -161,6 +163,7 @@ const ( ScalableDimensionKafkaBrokerStorageVolumeSize ScalableDimension = "kafka:broker-storage:VolumeSize" ScalableDimensionElastiCacheReplicationGroupNodeGroups ScalableDimension = "elasticache:replication-group:NodeGroups" ScalableDimensionElastiCacheReplicationGroupReplicas ScalableDimension = "elasticache:replication-group:Replicas" + ScalableDimensionNeptuneClusterReadReplicaCount ScalableDimension = "neptune:cluster:ReadReplicaCount" ) // Values returns all known values for ScalableDimension. Note that this can be @@ -187,6 +190,7 @@ func (ScalableDimension) Values() []ScalableDimension { "kafka:broker-storage:VolumeSize", "elasticache:replication-group:NodeGroups", "elasticache:replication-group:Replicas", + "neptune:cluster:ReadReplicaCount", } } @@ -233,6 +237,7 @@ const ( ServiceNamespaceCassandra ServiceNamespace = "cassandra" ServiceNamespaceKafka ServiceNamespace = "kafka" ServiceNamespaceElasticache ServiceNamespace = "elasticache" + ServiceNamespaceNeptune ServiceNamespace = "neptune" ) // Values returns all known values for ServiceNamespace. Note that this can be @@ -253,5 +258,6 @@ func (ServiceNamespace) Values() []ServiceNamespace { "cassandra", "kafka", "elasticache", + "neptune", } } diff --git a/service/applicationautoscaling/types/types.go b/service/applicationautoscaling/types/types.go index f685b4867b1..9398792ce58 100644 --- a/service/applicationautoscaling/types/types.go +++ b/service/applicationautoscaling/types/types.go @@ -157,9 +157,9 @@ type ScalableTarget struct { // resource type is service and the unique identifier is the cluster name and // service name. Example: service/default/sample-webapp. // - // * Spot Fleet request - - // The resource type is spot-fleet-request and the unique identifier is the Spot - // Fleet request ID. Example: + // * Spot Fleet - The + // resource type is spot-fleet-request and the unique identifier is the Spot Fleet + // request ID. Example: // spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. // // * EMR cluster - @@ -182,8 +182,8 @@ type ScalableTarget struct { // The resource type is cluster and the unique identifier is the cluster name. // Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variant - The - // resource type is variant and the unique identifier is the resource ID. Example: + // * SageMaker endpoint variant - The resource + // type is variant and the unique identifier is the resource ID. Example: // endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not @@ -222,6 +222,9 @@ type ScalableTarget struct { // and the unique identifier is the replication group name. Example: // replication-group/mycluster. // + // * Neptune cluster - The resource type is cluster + // and the unique identifier is the cluster name. Example: cluster:mycluster. + // // This member is required. ResourceId *string @@ -242,32 +245,31 @@ type ScalableTarget struct { // Instance Group. // // * ec2:spot-fleet-request:TargetCapacity - The target capacity - // of a Spot Fleet request. - // - // * appstream:fleet:DesiredCapacity - The desired - // capacity of an AppStream 2.0 fleet. + // of a Spot Fleet. // - // * dynamodb:table:ReadCapacityUnits - The - // provisioned read capacity for a DynamoDB table. + // * appstream:fleet:DesiredCapacity - The desired capacity of an + // AppStream 2.0 fleet. // - // * - // dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a - // DynamoDB table. + // * dynamodb:table:ReadCapacityUnits - The provisioned read + // capacity for a DynamoDB table. // - // * dynamodb:index:ReadCapacityUnits - The provisioned read - // capacity for a DynamoDB global secondary index. + // * dynamodb:table:WriteCapacityUnits - The + // provisioned write capacity for a DynamoDB table. // // * - // dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a - // DynamoDB global secondary index. + // dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB + // global secondary index. // - // * rds:cluster:ReadReplicaCount - The count of - // Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible - // edition and Aurora PostgreSQL-compatible edition. + // * dynamodb:index:WriteCapacityUnits - The provisioned + // write capacity for a DynamoDB global secondary index. // // * - // sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an - // Amazon SageMaker model endpoint variant. + // rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB + // cluster. Available for Aurora MySQL-compatible edition and Aurora + // PostgreSQL-compatible edition. + // + // * sagemaker:variant:DesiredInstanceCount - The + // number of EC2 instances for an SageMaker model endpoint variant. // // * // custom-resource:ResourceType:Property - The scalable dimension for a custom @@ -302,6 +304,9 @@ type ScalableTarget struct { // elasticache:replication-group:Replicas - The number of replicas per node group // for an Amazon ElastiCache replication group. // + // * neptune:cluster:ReadReplicaCount + // - The count of read replicas in an Amazon Neptune DB cluster. + // // This member is required. ScalableDimension ScalableDimension @@ -365,9 +370,9 @@ type ScalingActivity struct { // resource type is service and the unique identifier is the cluster name and // service name. Example: service/default/sample-webapp. // - // * Spot Fleet request - - // The resource type is spot-fleet-request and the unique identifier is the Spot - // Fleet request ID. Example: + // * Spot Fleet - The + // resource type is spot-fleet-request and the unique identifier is the Spot Fleet + // request ID. Example: // spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. // // * EMR cluster - @@ -390,8 +395,8 @@ type ScalingActivity struct { // The resource type is cluster and the unique identifier is the cluster name. // Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variant - The - // resource type is variant and the unique identifier is the resource ID. Example: + // * SageMaker endpoint variant - The resource + // type is variant and the unique identifier is the resource ID. Example: // endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not @@ -430,6 +435,9 @@ type ScalingActivity struct { // and the unique identifier is the replication group name. Example: // replication-group/mycluster. // + // * Neptune cluster - The resource type is cluster + // and the unique identifier is the cluster name. Example: cluster:mycluster. + // // This member is required. ResourceId *string @@ -443,65 +451,68 @@ type ScalingActivity struct { // instance count of an EMR Instance Group. // // * - // ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet - // request. + // ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet. // - // * appstream:fleet:DesiredCapacity - The desired capacity of an - // AppStream 2.0 fleet. + // * + // appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 + // fleet. // - // * dynamodb:table:ReadCapacityUnits - The provisioned read + // * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a + // DynamoDB table. + // + // * dynamodb:table:WriteCapacityUnits - The provisioned write // capacity for a DynamoDB table. // - // * dynamodb:table:WriteCapacityUnits - The - // provisioned write capacity for a DynamoDB table. + // * dynamodb:index:ReadCapacityUnits - The + // provisioned read capacity for a DynamoDB global secondary index. // // * - // dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB - // global secondary index. + // dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a + // DynamoDB global secondary index. // - // * dynamodb:index:WriteCapacityUnits - The provisioned - // write capacity for a DynamoDB global secondary index. + // * rds:cluster:ReadReplicaCount - The count of + // Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible + // edition and Aurora PostgreSQL-compatible edition. // // * - // rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB - // cluster. Available for Aurora MySQL-compatible edition and Aurora - // PostgreSQL-compatible edition. + // sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an + // SageMaker model endpoint variant. // - // * sagemaker:variant:DesiredInstanceCount - The - // number of EC2 instances for an Amazon SageMaker model endpoint variant. + // * custom-resource:ResourceType:Property - The + // scalable dimension for a custom resource provided by your own application or + // service. // - // * - // custom-resource:ResourceType:Property - The scalable dimension for a custom - // resource provided by your own application or service. + // * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend document classification + // endpoint. // - // * - // comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of - // inference units for an Amazon Comprehend document classification endpoint. + // * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend entity recognizer + // endpoint. // - // * - // comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of - // inference units for an Amazon Comprehend entity recognizer endpoint. + // * lambda:function:ProvisionedConcurrency - The provisioned + // concurrency for a Lambda function. // - // * - // lambda:function:ProvisionedConcurrency - The provisioned concurrency for a - // Lambda function. + // * cassandra:table:ReadCapacityUnits - The + // provisioned read capacity for an Amazon Keyspaces table. // - // * cassandra:table:ReadCapacityUnits - The provisioned read - // capacity for an Amazon Keyspaces table. + // * + // cassandra:table:WriteCapacityUnits - The provisioned write capacity for an + // Amazon Keyspaces table. // - // * cassandra:table:WriteCapacityUnits - - // The provisioned write capacity for an Amazon Keyspaces table. + // * kafka:broker-storage:VolumeSize - The provisioned + // volume size (in GiB) for brokers in an Amazon MSK cluster. // // * - // kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for - // brokers in an Amazon MSK cluster. + // elasticache:replication-group:NodeGroups - The number of node groups for an + // Amazon ElastiCache replication group. // - // * elasticache:replication-group:NodeGroups - - // The number of node groups for an Amazon ElastiCache replication group. + // * elasticache:replication-group:Replicas + // - The number of replicas per node group for an Amazon ElastiCache replication + // group. // - // * - // elasticache:replication-group:Replicas - The number of replicas per node group - // for an Amazon ElastiCache replication group. + // * neptune:cluster:ReadReplicaCount - The count of read replicas in an + // Amazon Neptune DB cluster. // // This member is required. ScalableDimension ScalableDimension @@ -568,9 +579,9 @@ type ScalingPolicy struct { // resource type is service and the unique identifier is the cluster name and // service name. Example: service/default/sample-webapp. // - // * Spot Fleet request - - // The resource type is spot-fleet-request and the unique identifier is the Spot - // Fleet request ID. Example: + // * Spot Fleet - The + // resource type is spot-fleet-request and the unique identifier is the Spot Fleet + // request ID. Example: // spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. // // * EMR cluster - @@ -593,8 +604,8 @@ type ScalingPolicy struct { // The resource type is cluster and the unique identifier is the cluster name. // Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variant - The - // resource type is variant and the unique identifier is the resource ID. Example: + // * SageMaker endpoint variant - The resource + // type is variant and the unique identifier is the resource ID. Example: // endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not @@ -633,6 +644,9 @@ type ScalingPolicy struct { // and the unique identifier is the replication group name. Example: // replication-group/mycluster. // + // * Neptune cluster - The resource type is cluster + // and the unique identifier is the cluster name. Example: cluster:mycluster. + // // This member is required. ResourceId *string @@ -646,65 +660,68 @@ type ScalingPolicy struct { // instance count of an EMR Instance Group. // // * - // ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet - // request. + // ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet. // - // * appstream:fleet:DesiredCapacity - The desired capacity of an - // AppStream 2.0 fleet. + // * + // appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 + // fleet. // - // * dynamodb:table:ReadCapacityUnits - The provisioned read + // * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a + // DynamoDB table. + // + // * dynamodb:table:WriteCapacityUnits - The provisioned write // capacity for a DynamoDB table. // - // * dynamodb:table:WriteCapacityUnits - The - // provisioned write capacity for a DynamoDB table. + // * dynamodb:index:ReadCapacityUnits - The + // provisioned read capacity for a DynamoDB global secondary index. // // * - // dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB - // global secondary index. + // dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a + // DynamoDB global secondary index. // - // * dynamodb:index:WriteCapacityUnits - The provisioned - // write capacity for a DynamoDB global secondary index. + // * rds:cluster:ReadReplicaCount - The count of + // Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible + // edition and Aurora PostgreSQL-compatible edition. // // * - // rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB - // cluster. Available for Aurora MySQL-compatible edition and Aurora - // PostgreSQL-compatible edition. + // sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an + // SageMaker model endpoint variant. // - // * sagemaker:variant:DesiredInstanceCount - The - // number of EC2 instances for an Amazon SageMaker model endpoint variant. + // * custom-resource:ResourceType:Property - The + // scalable dimension for a custom resource provided by your own application or + // service. // - // * - // custom-resource:ResourceType:Property - The scalable dimension for a custom - // resource provided by your own application or service. + // * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend document classification + // endpoint. // - // * - // comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of - // inference units for an Amazon Comprehend document classification endpoint. + // * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend entity recognizer + // endpoint. // - // * - // comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of - // inference units for an Amazon Comprehend entity recognizer endpoint. + // * lambda:function:ProvisionedConcurrency - The provisioned + // concurrency for a Lambda function. // - // * - // lambda:function:ProvisionedConcurrency - The provisioned concurrency for a - // Lambda function. + // * cassandra:table:ReadCapacityUnits - The + // provisioned read capacity for an Amazon Keyspaces table. // - // * cassandra:table:ReadCapacityUnits - The provisioned read - // capacity for an Amazon Keyspaces table. + // * + // cassandra:table:WriteCapacityUnits - The provisioned write capacity for an + // Amazon Keyspaces table. // - // * cassandra:table:WriteCapacityUnits - - // The provisioned write capacity for an Amazon Keyspaces table. + // * kafka:broker-storage:VolumeSize - The provisioned + // volume size (in GiB) for brokers in an Amazon MSK cluster. // // * - // kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for - // brokers in an Amazon MSK cluster. + // elasticache:replication-group:NodeGroups - The number of node groups for an + // Amazon ElastiCache replication group. // - // * elasticache:replication-group:NodeGroups - - // The number of node groups for an Amazon ElastiCache replication group. + // * elasticache:replication-group:Replicas + // - The number of replicas per node group for an Amazon ElastiCache replication + // group. // - // * - // elasticache:replication-group:Replicas - The number of replicas per node group - // for an Amazon ElastiCache replication group. + // * neptune:cluster:ReadReplicaCount - The count of read replicas in an + // Amazon Neptune DB cluster. // // This member is required. ScalableDimension ScalableDimension @@ -742,9 +759,9 @@ type ScheduledAction struct { // resource type is service and the unique identifier is the cluster name and // service name. Example: service/default/sample-webapp. // - // * Spot Fleet request - - // The resource type is spot-fleet-request and the unique identifier is the Spot - // Fleet request ID. Example: + // * Spot Fleet - The + // resource type is spot-fleet-request and the unique identifier is the Spot Fleet + // request ID. Example: // spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. // // * EMR cluster - @@ -767,8 +784,8 @@ type ScheduledAction struct { // The resource type is cluster and the unique identifier is the cluster name. // Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variant - The - // resource type is variant and the unique identifier is the resource ID. Example: + // * SageMaker endpoint variant - The resource + // type is variant and the unique identifier is the resource ID. Example: // endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not @@ -807,6 +824,9 @@ type ScheduledAction struct { // and the unique identifier is the replication group name. Example: // replication-group/mycluster. // + // * Neptune cluster - The resource type is cluster + // and the unique identifier is the cluster name. Example: cluster:mycluster. + // // This member is required. ResourceId *string @@ -864,65 +884,68 @@ type ScheduledAction struct { // instance count of an EMR Instance Group. // // * - // ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet - // request. + // ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet. // - // * appstream:fleet:DesiredCapacity - The desired capacity of an - // AppStream 2.0 fleet. + // * + // appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 + // fleet. // - // * dynamodb:table:ReadCapacityUnits - The provisioned read + // * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a + // DynamoDB table. + // + // * dynamodb:table:WriteCapacityUnits - The provisioned write // capacity for a DynamoDB table. // - // * dynamodb:table:WriteCapacityUnits - The - // provisioned write capacity for a DynamoDB table. + // * dynamodb:index:ReadCapacityUnits - The + // provisioned read capacity for a DynamoDB global secondary index. // // * - // dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB - // global secondary index. + // dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a + // DynamoDB global secondary index. // - // * dynamodb:index:WriteCapacityUnits - The provisioned - // write capacity for a DynamoDB global secondary index. + // * rds:cluster:ReadReplicaCount - The count of + // Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible + // edition and Aurora PostgreSQL-compatible edition. // // * - // rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB - // cluster. Available for Aurora MySQL-compatible edition and Aurora - // PostgreSQL-compatible edition. + // sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an + // SageMaker model endpoint variant. // - // * sagemaker:variant:DesiredInstanceCount - The - // number of EC2 instances for an Amazon SageMaker model endpoint variant. + // * custom-resource:ResourceType:Property - The + // scalable dimension for a custom resource provided by your own application or + // service. // - // * - // custom-resource:ResourceType:Property - The scalable dimension for a custom - // resource provided by your own application or service. + // * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend document classification + // endpoint. // - // * - // comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of - // inference units for an Amazon Comprehend document classification endpoint. + // * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend entity recognizer + // endpoint. // - // * - // comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of - // inference units for an Amazon Comprehend entity recognizer endpoint. + // * lambda:function:ProvisionedConcurrency - The provisioned + // concurrency for a Lambda function. // - // * - // lambda:function:ProvisionedConcurrency - The provisioned concurrency for a - // Lambda function. + // * cassandra:table:ReadCapacityUnits - The + // provisioned read capacity for an Amazon Keyspaces table. // - // * cassandra:table:ReadCapacityUnits - The provisioned read - // capacity for an Amazon Keyspaces table. + // * + // cassandra:table:WriteCapacityUnits - The provisioned write capacity for an + // Amazon Keyspaces table. // - // * cassandra:table:WriteCapacityUnits - - // The provisioned write capacity for an Amazon Keyspaces table. + // * kafka:broker-storage:VolumeSize - The provisioned + // volume size (in GiB) for brokers in an Amazon MSK cluster. // // * - // kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for - // brokers in an Amazon MSK cluster. + // elasticache:replication-group:NodeGroups - The number of node groups for an + // Amazon ElastiCache replication group. // - // * elasticache:replication-group:NodeGroups - - // The number of node groups for an Amazon ElastiCache replication group. + // * elasticache:replication-group:Replicas + // - The number of replicas per node group for an Amazon ElastiCache replication + // group. // - // * - // elasticache:replication-group:Replicas - The number of replicas per node group - // for an Amazon ElastiCache replication group. + // * neptune:cluster:ReadReplicaCount - The count of read replicas in an + // Amazon Neptune DB cluster. ScalableDimension ScalableDimension // The new minimum and maximum capacity. You can set both values or just one. At @@ -1034,37 +1057,37 @@ type StepScalingPolicyConfiguration struct { // value of 600 for Amazon ElastiCache replication groups and a default value of // 300 for the following scalable targets: // - // * ECS services + // * AppStream 2.0 fleets // - // * Spot Fleet - // requests + // * Aurora DB + // clusters + // + // * ECS services // // * EMR clusters // - // * AppStream 2.0 fleets + // * Neptune clusters // - // * Aurora DB clusters + // * SageMaker + // endpoint variants // - // * Amazon - // SageMaker endpoint variants + // * Spot Fleets // // * Custom resources // - // For all other scalable targets, - // the default value is 0: + // For all other scalable + // targets, the default value is 0: // - // * DynamoDB tables + // * Amazon Comprehend document classification + // and entity recognizer endpoints // - // * DynamoDB global secondary + // * DynamoDB tables and global secondary // indexes // - // * Amazon Comprehend document classification and entity recognizer - // endpoints + // * Amazon Keyspaces tables // // * Lambda provisioned concurrency // - // * Amazon Keyspaces tables - // // * Amazon // MSK broker storage Cooldown *int32 @@ -1153,36 +1176,36 @@ type TargetTrackingScalingPolicyConfiguration struct { // ElastiCache replication groups and a default value of 300 for the following // scalable targets: // - // * ECS services + // * AppStream 2.0 fleets + // + // * Aurora DB clusters // - // * Spot Fleet requests + // * ECS + // services // // * EMR clusters // - // * - // AppStream 2.0 fleets + // * Neptune clusters // - // * Aurora DB clusters + // * SageMaker endpoint variants // - // * Amazon SageMaker endpoint - // variants + // * + // Spot Fleets // // * Custom resources // - // For all other scalable targets, the default value - // is 0: + // For all other scalable targets, the default + // value is 0: // - // * DynamoDB tables - // - // * DynamoDB global secondary indexes + // * Amazon Comprehend document classification and entity recognizer + // endpoints // - // * Amazon - // Comprehend document classification and entity recognizer endpoints + // * DynamoDB tables and global secondary indexes // - // * Lambda - // provisioned concurrency + // * Amazon Keyspaces + // tables // - // * Amazon Keyspaces tables + // * Lambda provisioned concurrency // // * Amazon MSK broker storage ScaleInCooldown *int32 @@ -1199,39 +1222,38 @@ type TargetTrackingScalingPolicyConfiguration struct { // of 600 for Amazon ElastiCache replication groups and a default value of 300 for // the following scalable targets: // - // * ECS services + // * AppStream 2.0 fleets // - // * Spot Fleet requests + // * Aurora DB clusters // - // * EMR - // clusters + // * + // ECS services // - // * AppStream 2.0 fleets + // * EMR clusters // - // * Aurora DB clusters + // * Neptune clusters // - // * Amazon SageMaker - // endpoint variants + // * SageMaker endpoint + // variants + // + // * Spot Fleets // // * Custom resources // // For all other scalable targets, the // default value is 0: // - // * DynamoDB tables + // * Amazon Comprehend document classification and entity + // recognizer endpoints // - // * DynamoDB global secondary indexes + // * DynamoDB tables and global secondary indexes // - // * - // Amazon Comprehend document classification and entity recognizer endpoints - // - // * - // Lambda provisioned concurrency + // * Amazon + // Keyspaces tables // - // * Amazon Keyspaces tables + // * Lambda provisioned concurrency // - // * Amazon MSK broker - // storage + // * Amazon MSK broker storage ScaleOutCooldown *int32 noSmithyDocumentSerde diff --git a/service/apprunner/api_op_AssociateCustomDomain.go b/service/apprunner/api_op_AssociateCustomDomain.go index 0e845f65cec..71a9c3df114 100644 --- a/service/apprunner/api_op_AssociateCustomDomain.go +++ b/service/apprunner/api_op_AssociateCustomDomain.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Associate your own domain name with the AWS App Runner subdomain URL of your App +// Associate your own domain name with the App Runner subdomain URL of your App // Runner service. After you call AssociateCustomDomain and receive a successful // response, use the information in the CustomDomain record that's returned to add // CNAME records to your Domain Name System (DNS). For each mapped domain name, add diff --git a/service/apprunner/api_op_CreateAutoScalingConfiguration.go b/service/apprunner/api_op_CreateAutoScalingConfiguration.go index a019c6de8ec..d0da1665b8d 100644 --- a/service/apprunner/api_op_CreateAutoScalingConfiguration.go +++ b/service/apprunner/api_op_CreateAutoScalingConfiguration.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Create an AWS App Runner automatic scaling configuration resource. App Runner +// Create an App Runner automatic scaling configuration resource. App Runner // requires this resource when you create App Runner services that require // non-default auto scaling settings. You can share an auto scaling configuration // across multiple services. Create multiple revisions of a configuration by using @@ -19,9 +19,9 @@ import ( // AutoScalingConfigurationRevision values. When you create a service, you can set // it to use the latest active revision of an auto scaling configuration or a // specific revision. Configure a higher MinSize to increase the spread of your App -// Runner service over more Availability Zones in the AWS Region. The tradeoff is a -// higher minimal cost. Configure a lower MaxSize to control your cost. The -// tradeoff is lower responsiveness during peak demand. +// Runner service over more Availability Zones in the Amazon Web Services Region. +// The tradeoff is a higher minimal cost. Configure a lower MaxSize to control your +// cost. The tradeoff is lower responsiveness during peak demand. func (c *Client) CreateAutoScalingConfiguration(ctx context.Context, params *CreateAutoScalingConfigurationInput, optFns ...func(*Options)) (*CreateAutoScalingConfigurationOutput, error) { if params == nil { params = &CreateAutoScalingConfigurationInput{} @@ -40,9 +40,9 @@ func (c *Client) CreateAutoScalingConfiguration(ctx context.Context, params *Cre type CreateAutoScalingConfigurationInput struct { // A name for the auto scaling configuration. When you use it for the first time in - // an AWS Region, App Runner creates revision number 1 of this name. When you use - // the same name in subsequent calls, App Runner creates incremental revisions of - // the configuration. + // an Amazon Web Services Region, App Runner creates revision number 1 of this + // name. When you use the same name in subsequent calls, App Runner creates + // incremental revisions of the configuration. // // This member is required. AutoScalingConfigurationName *string diff --git a/service/apprunner/api_op_CreateConnection.go b/service/apprunner/api_op_CreateConnection.go index 067626a9b36..14b08e46ef0 100644 --- a/service/apprunner/api_op_CreateConnection.go +++ b/service/apprunner/api_op_CreateConnection.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Create an AWS App Runner connection resource. App Runner requires a connection +// Create an App Runner connection resource. App Runner requires a connection // resource when you create App Runner services that access private repositories // from certain third-party providers. You can share a connection across multiple // services. A connection resource is needed to access GitHub repositories. GitHub @@ -35,7 +35,8 @@ func (c *Client) CreateConnection(ctx context.Context, params *CreateConnectionI type CreateConnectionInput struct { // A name for the new connection. It must be unique across all App Runner - // connections for the AWS account in the AWS Region. + // connections for the Amazon Web Services account in the Amazon Web Services + // Region. // // This member is required. ConnectionName *string diff --git a/service/apprunner/api_op_CreateService.go b/service/apprunner/api_op_CreateService.go index c4ff8e7b48d..86f8c3bca18 100644 --- a/service/apprunner/api_op_CreateService.go +++ b/service/apprunner/api_op_CreateService.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Create an AWS App Runner service. After the service is created, the action also +// Create an App Runner service. After the service is created, the action also // automatically starts a deployment. This is an asynchronous operation. On a // successful call, you can use the returned OperationId and the ListOperations // (https://docs.aws.amazon.com/apprunner/latest/api/API_ListOperations.html) call @@ -34,7 +34,7 @@ func (c *Client) CreateService(ctx context.Context, params *CreateServiceInput, type CreateServiceInput struct { // A name for the new service. It must be unique across all the running App Runner - // services in your AWS account in the AWS Region. + // services in your Amazon Web Services account in the Amazon Web Services Region. // // This member is required. ServiceName *string @@ -52,11 +52,11 @@ type CreateServiceInput struct { // An optional custom encryption key that App Runner uses to encrypt the copy of // your source repository that it maintains and your service logs. By default, App - // Runner uses an AWS managed CMK. + // Runner uses an Amazon Web Services managed CMK. EncryptionConfiguration *types.EncryptionConfiguration - // The settings for the health check that AWS App Runner performs to monitor the - // health of your service. + // The settings for the health check that App Runner performs to monitor the health + // of your service. HealthCheckConfiguration *types.HealthCheckConfiguration // The runtime configuration of instances (scaling units) of the App Runner diff --git a/service/apprunner/api_op_DeleteAutoScalingConfiguration.go b/service/apprunner/api_op_DeleteAutoScalingConfiguration.go index a020e08bcb3..dec240ea5c1 100644 --- a/service/apprunner/api_op_DeleteAutoScalingConfiguration.go +++ b/service/apprunner/api_op_DeleteAutoScalingConfiguration.go @@ -11,8 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Delete an AWS App Runner automatic scaling configuration resource. You can -// delete a specific revision or the latest active revision. You can't delete a +// Delete an App Runner automatic scaling configuration resource. You can delete a +// specific revision or the latest active revision. You can't delete a // configuration that's used by one or more App Runner services. func (c *Client) DeleteAutoScalingConfiguration(ctx context.Context, params *DeleteAutoScalingConfigurationInput, optFns ...func(*Options)) (*DeleteAutoScalingConfigurationOutput, error) { if params == nil { diff --git a/service/apprunner/api_op_DeleteConnection.go b/service/apprunner/api_op_DeleteConnection.go index b9b4f7e6746..cc8468cd741 100644 --- a/service/apprunner/api_op_DeleteConnection.go +++ b/service/apprunner/api_op_DeleteConnection.go @@ -11,8 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Delete an AWS App Runner connection. You must first ensure that there are no -// running App Runner services that use this connection. If there are any, the +// Delete an App Runner connection. You must first ensure that there are no running +// App Runner services that use this connection. If there are any, the // DeleteConnection action fails. func (c *Client) DeleteConnection(ctx context.Context, params *DeleteConnectionInput, optFns ...func(*Options)) (*DeleteConnectionOutput, error) { if params == nil { diff --git a/service/apprunner/api_op_DeleteService.go b/service/apprunner/api_op_DeleteService.go index bdb5f469fe0..897ef9888dc 100644 --- a/service/apprunner/api_op_DeleteService.go +++ b/service/apprunner/api_op_DeleteService.go @@ -11,9 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Delete an AWS App Runner service. This is an asynchronous operation. On a -// successful call, you can use the returned OperationId and the ListOperations -// call to track the operation's progress. +// Delete an App Runner service. This is an asynchronous operation. On a successful +// call, you can use the returned OperationId and the ListOperations call to track +// the operation's progress. func (c *Client) DeleteService(ctx context.Context, params *DeleteServiceInput, optFns ...func(*Options)) (*DeleteServiceOutput, error) { if params == nil { params = &DeleteServiceInput{} diff --git a/service/apprunner/api_op_DescribeAutoScalingConfiguration.go b/service/apprunner/api_op_DescribeAutoScalingConfiguration.go index 9f119b1822b..26b42936aef 100644 --- a/service/apprunner/api_op_DescribeAutoScalingConfiguration.go +++ b/service/apprunner/api_op_DescribeAutoScalingConfiguration.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Return a full description of an AWS App Runner automatic scaling configuration +// Return a full description of an App Runner automatic scaling configuration // resource. func (c *Client) DescribeAutoScalingConfiguration(ctx context.Context, params *DescribeAutoScalingConfigurationInput, optFns ...func(*Options)) (*DescribeAutoScalingConfigurationOutput, error) { if params == nil { diff --git a/service/apprunner/api_op_DescribeCustomDomains.go b/service/apprunner/api_op_DescribeCustomDomains.go index aa642401642..44ff4024cb6 100644 --- a/service/apprunner/api_op_DescribeCustomDomains.go +++ b/service/apprunner/api_op_DescribeCustomDomains.go @@ -12,7 +12,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Return a description of custom domain names that are associated with an AWS App +// Return a description of custom domain names that are associated with an App // Runner service. func (c *Client) DescribeCustomDomains(ctx context.Context, params *DescribeCustomDomainsInput, optFns ...func(*Options)) (*DescribeCustomDomainsOutput, error) { if params == nil { diff --git a/service/apprunner/api_op_DescribeService.go b/service/apprunner/api_op_DescribeService.go index b3526de0c2a..5b7695c3244 100644 --- a/service/apprunner/api_op_DescribeService.go +++ b/service/apprunner/api_op_DescribeService.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Return a full description of an AWS App Runner service. +// Return a full description of an App Runner service. func (c *Client) DescribeService(ctx context.Context, params *DescribeServiceInput, optFns ...func(*Options)) (*DescribeServiceOutput, error) { if params == nil { params = &DescribeServiceInput{} diff --git a/service/apprunner/api_op_DisassociateCustomDomain.go b/service/apprunner/api_op_DisassociateCustomDomain.go index 46505f81a79..a3f731f9489 100644 --- a/service/apprunner/api_op_DisassociateCustomDomain.go +++ b/service/apprunner/api_op_DisassociateCustomDomain.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Disassociate a custom domain name from an AWS App Runner service. Certificates +// Disassociate a custom domain name from an App Runner service. Certificates // tracking domain validity are associated with a custom domain and are stored in // AWS Certificate Manager (ACM) // (https://docs.aws.amazon.com/acm/latest/userguide). These certificates aren't diff --git a/service/apprunner/api_op_ListAutoScalingConfigurations.go b/service/apprunner/api_op_ListAutoScalingConfigurations.go index 12db6538be6..38f31569a10 100644 --- a/service/apprunner/api_op_ListAutoScalingConfigurations.go +++ b/service/apprunner/api_op_ListAutoScalingConfigurations.go @@ -12,10 +12,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns a list of AWS App Runner automatic scaling configurations in your AWS -// account. You can query the revisions for a specific configuration name or the -// revisions for all configurations in your account. You can optionally query only -// the latest revision of each requested name. +// Returns a list of App Runner automatic scaling configurations in your Amazon Web +// Services account. You can query the revisions for a specific configuration name +// or the revisions for all configurations in your account. You can optionally +// query only the latest revision of each requested name. func (c *Client) ListAutoScalingConfigurations(ctx context.Context, params *ListAutoScalingConfigurationsInput, optFns ...func(*Options)) (*ListAutoScalingConfigurationsOutput, error) { if params == nil { params = &ListAutoScalingConfigurationsInput{} diff --git a/service/apprunner/api_op_ListConnections.go b/service/apprunner/api_op_ListConnections.go index 862789d55e5..4e269de0896 100644 --- a/service/apprunner/api_op_ListConnections.go +++ b/service/apprunner/api_op_ListConnections.go @@ -12,8 +12,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns a list of AWS App Runner connections that are associated with your AWS -// account. +// Returns a list of App Runner connections that are associated with your Amazon +// Web Services account. func (c *Client) ListConnections(ctx context.Context, params *ListConnectionsInput, optFns ...func(*Options)) (*ListConnectionsOutput, error) { if params == nil { params = &ListConnectionsInput{} diff --git a/service/apprunner/api_op_ListOperations.go b/service/apprunner/api_op_ListOperations.go index 7521250aef7..cea93d2d7f3 100644 --- a/service/apprunner/api_op_ListOperations.go +++ b/service/apprunner/api_op_ListOperations.go @@ -12,7 +12,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Return a list of operations that occurred on an AWS App Runner service. The +// Return a list of operations that occurred on an App Runner service. The // resulting list of OperationSummary objects is sorted in reverse chronological // order. The first object on the list represents the last started operation. func (c *Client) ListOperations(ctx context.Context, params *ListOperationsInput, optFns ...func(*Options)) (*ListOperationsOutput, error) { diff --git a/service/apprunner/api_op_ListServices.go b/service/apprunner/api_op_ListServices.go index 628d3646594..a54728d0a89 100644 --- a/service/apprunner/api_op_ListServices.go +++ b/service/apprunner/api_op_ListServices.go @@ -12,7 +12,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns a list of running AWS App Runner services in your AWS account. +// Returns a list of running App Runner services in your Amazon Web Services +// account. func (c *Client) ListServices(ctx context.Context, params *ListServicesInput, optFns ...func(*Options)) (*ListServicesOutput, error) { if params == nil { params = &ListServicesInput{} diff --git a/service/apprunner/api_op_ListTagsForResource.go b/service/apprunner/api_op_ListTagsForResource.go index c4b24b63fb1..f18db7ef2bd 100644 --- a/service/apprunner/api_op_ListTagsForResource.go +++ b/service/apprunner/api_op_ListTagsForResource.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// List tags that are associated with for an AWS App Runner resource. The response +// List tags that are associated with for an App Runner resource. The response // contains a list of tag key-value pairs. func (c *Client) ListTagsForResource(ctx context.Context, params *ListTagsForResourceInput, optFns ...func(*Options)) (*ListTagsForResourceOutput, error) { if params == nil { diff --git a/service/apprunner/api_op_PauseService.go b/service/apprunner/api_op_PauseService.go index 9dc0a34bd5f..c7728ce1614 100644 --- a/service/apprunner/api_op_PauseService.go +++ b/service/apprunner/api_op_PauseService.go @@ -11,8 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Pause an active AWS App Runner service. App Runner reduces compute capacity for -// the service to zero and loses state (for example, ephemeral storage is removed). +// Pause an active App Runner service. App Runner reduces compute capacity for the +// service to zero and loses state (for example, ephemeral storage is removed). // This is an asynchronous operation. On a successful call, you can use the // returned OperationId and the ListOperations call to track the operation's // progress. diff --git a/service/apprunner/api_op_ResumeService.go b/service/apprunner/api_op_ResumeService.go index ff1806cc124..05f33c18dcb 100644 --- a/service/apprunner/api_op_ResumeService.go +++ b/service/apprunner/api_op_ResumeService.go @@ -11,9 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Resume an active AWS App Runner service. App Runner provisions compute capacity -// for the service. This is an asynchronous operation. On a successful call, you -// can use the returned OperationId and the ListOperations call to track the +// Resume an active App Runner service. App Runner provisions compute capacity for +// the service. This is an asynchronous operation. On a successful call, you can +// use the returned OperationId and the ListOperations call to track the // operation's progress. func (c *Client) ResumeService(ctx context.Context, params *ResumeServiceInput, optFns ...func(*Options)) (*ResumeServiceOutput, error) { if params == nil { diff --git a/service/apprunner/api_op_StartDeployment.go b/service/apprunner/api_op_StartDeployment.go index f179b590667..cc286ae1fa9 100644 --- a/service/apprunner/api_op_StartDeployment.go +++ b/service/apprunner/api_op_StartDeployment.go @@ -11,8 +11,8 @@ import ( ) // Initiate a manual deployment of the latest commit in a source code repository or -// the latest image in a source image repository to an AWS App Runner service. For -// a source code repository, App Runner retrieves the commit and builds a Docker +// the latest image in a source image repository to an App Runner service. For a +// source code repository, App Runner retrieves the commit and builds a Docker // image. For a source image repository, App Runner retrieves the latest Docker // image. In both cases, App Runner then deploys the new image to your service and // starts a new container instance. This is an asynchronous operation. On a diff --git a/service/apprunner/api_op_UpdateService.go b/service/apprunner/api_op_UpdateService.go index f4b569a70aa..8f895a222e4 100644 --- a/service/apprunner/api_op_UpdateService.go +++ b/service/apprunner/api_op_UpdateService.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Update an AWS App Runner service. You can update the source configuration and +// Update an App Runner service. You can update the source configuration and // instance configuration of the service. You can also update the ARN of the auto // scaling configuration resource that's associated with the service. However, you // can't change the name or the encryption configuration of the service. These can @@ -46,8 +46,8 @@ type UpdateServiceInput struct { // resource that you want to associate with your service. AutoScalingConfigurationArn *string - // The settings for the health check that AWS App Runner performs to monitor the - // health of your service. + // The settings for the health check that App Runner performs to monitor the health + // of your service. HealthCheckConfiguration *types.HealthCheckConfiguration // The runtime configuration to apply to instances (scaling units) of the App diff --git a/service/apprunner/deserializers.go b/service/apprunner/deserializers.go index 1ce59bedfac..61492890cbe 100644 --- a/service/apprunner/deserializers.go +++ b/service/apprunner/deserializers.go @@ -3736,7 +3736,7 @@ func awsAwsjson10_deserializeDocumentHealthCheckConfiguration(v **types.HealthCh if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected HealthCheckPath to be of type string, got %T instead", value) } sv.Path = ptr.String(jtv) } diff --git a/service/apprunner/doc.go b/service/apprunner/doc.go index cb644807f5d..9ee68cf769e 100644 --- a/service/apprunner/doc.go +++ b/service/apprunner/doc.go @@ -3,21 +3,22 @@ // Package apprunner provides the API client, operations, and parameter types for // AWS App Runner. // -// AWS App Runner AWS App Runner is an application service that provides a fast, -// simple, and cost-effective way to go directly from an existing container image -// or source code to a running service in the AWS cloud in seconds. You don't need -// to learn new technologies, decide which compute service to use, or understand -// how to provision and configure AWS resources. App Runner connects directly to -// your container registry or source code repository. It provides an automatic -// delivery pipeline with fully managed operations, high performance, scalability, -// and security. For more information about App Runner, see the AWS App Runner -// Developer Guide (https://docs.aws.amazon.com/apprunner/latest/dg/). For release -// information, see the AWS App Runner Release Notes +// App Runner App Runner is an application service that provides a fast, simple, +// and cost-effective way to go directly from an existing container image or source +// code to a running service in the Amazon Web Services Cloud in seconds. You don't +// need to learn new technologies, decide which compute service to use, or +// understand how to provision and configure Amazon Web Services resources. App +// Runner connects directly to your container registry or source code repository. +// It provides an automatic delivery pipeline with fully managed operations, high +// performance, scalability, and security. For more information about App Runner, +// see the App Runner Developer Guide +// (https://docs.aws.amazon.com/apprunner/latest/dg/). For release information, see +// the App Runner Release Notes // (https://docs.aws.amazon.com/apprunner/latest/relnotes/). To install the // Software Development Kits (SDKs), Integrated Development Environment (IDE) // Toolkits, and command line tools that you can use to access the API, see Tools // for Amazon Web Services (http://aws.amazon.com/tools/). Endpoints For a list of -// Region-specific endpoints that App Runner supports, see AWS App Runner endpoints -// and quotas (https://docs.aws.amazon.com/general/latest/gr/apprunner.html) in the -// AWS General Reference. +// Region-specific endpoints that App Runner supports, see App Runner endpoints and +// quotas (https://docs.aws.amazon.com/general/latest/gr/apprunner.html) in the +// Amazon Web Services General Reference. package apprunner diff --git a/service/apprunner/types/errors.go b/service/apprunner/types/errors.go index 4da4b2e64ea..19c6db7a757 100644 --- a/service/apprunner/types/errors.go +++ b/service/apprunner/types/errors.go @@ -66,7 +66,7 @@ func (e *InvalidStateException) ErrorCode() string { return "Invalid func (e *InvalidStateException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } // A resource doesn't exist for the specified Amazon Resource Name (ARN) in your -// AWS account. +// Amazon Web Services account. type ResourceNotFoundException struct { Message *string @@ -86,10 +86,9 @@ func (e *ResourceNotFoundException) ErrorCode() string { return "Res func (e *ResourceNotFoundException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } // App Runner can't create this resource. You've reached your account quota for -// this resource type. For App Runner per-resource quotas, see AWS App Runner -// endpoints and quotas -// (https://docs.aws.amazon.com/general/latest/gr/apprunner.html) in the AWS -// General Reference. +// this resource type. For App Runner per-resource quotas, see App Runner endpoints +// and quotas (https://docs.aws.amazon.com/general/latest/gr/apprunner.html) in the +// Amazon Web Services General Reference. type ServiceQuotaExceededException struct { Message *string diff --git a/service/apprunner/types/types.go b/service/apprunner/types/types.go index 5a6ec37880f..0295970f387 100644 --- a/service/apprunner/types/types.go +++ b/service/apprunner/types/types.go @@ -24,12 +24,12 @@ type AuthenticationConfiguration struct { noSmithyDocumentSerde } -// Describes an AWS App Runner automatic scaling configuration resource. Multiple +// Describes an App Runner automatic scaling configuration resource. Multiple // revisions of a configuration have the same AutoScalingConfigurationName and // different AutoScalingConfigurationRevision values. A higher MinSize increases -// the spread of your App Runner service over more Availability Zones in the AWS -// Region. The tradeoff is a higher minimal cost. A lower MaxSize controls your -// cost. The tradeoff is lower responsiveness during peak demand. +// the spread of your App Runner service over more Availability Zones in the Amazon +// Web Services Region. The tradeoff is a higher minimal cost. A lower MaxSize +// controls your cost. The tradeoff is lower responsiveness during peak demand. type AutoScalingConfiguration struct { // The Amazon Resource Name (ARN) of this auto scaling configuration. @@ -84,9 +84,9 @@ type AutoScalingConfiguration struct { noSmithyDocumentSerde } -// Provides summary information about an AWS App Runner automatic scaling -// configuration resource. This type contains limited information about an auto -// scaling configuration. It includes only identification information, without +// Provides summary information about an App Runner automatic scaling configuration +// resource. This type contains limited information about an auto scaling +// configuration. It includes only identification information, without // configuration details. It's returned by the ListAutoScalingConfigurations // action. Complete configuration information is returned by the // CreateAutoScalingConfiguration, DescribeAutoScalingConfiguration, and @@ -129,8 +129,8 @@ type CertificateValidationRecord struct { noSmithyDocumentSerde } -// Describes the configuration that AWS App Runner uses to build and run an App -// Runner service from a source code repository. +// Describes the configuration that App Runner uses to build and run an App Runner +// service from a source code repository. type CodeConfiguration struct { // The source of the App Runner configuration. Values are interpreted as @@ -155,8 +155,8 @@ type CodeConfiguration struct { noSmithyDocumentSerde } -// Describes the basic configuration needed for building and running an AWS App -// Runner service. This type doesn't support the full set of possible configuration +// Describes the basic configuration needed for building and running an App Runner +// service. This type doesn't support the full set of possible configuration // options. Fur full configuration capabilities, use a apprunner.yaml file in the // source code repository. type CodeConfigurationValues struct { @@ -204,7 +204,7 @@ type CodeRepository struct { noSmithyDocumentSerde } -// Describes an AWS App Runner connection resource. +// Describes an App Runner connection resource. type Connection struct { // The Amazon Resource Name (ARN) of this connection. @@ -226,7 +226,7 @@ type Connection struct { noSmithyDocumentSerde } -// Provides summary information about an AWS App Runner connection resource. +// Provides summary information about an App Runner connection resource. type ConnectionSummary struct { // The Amazon Resource Name (ARN) of this connection. @@ -248,7 +248,7 @@ type ConnectionSummary struct { noSmithyDocumentSerde } -// Describes a custom domain that's associated with an AWS App Runner service. +// Describes a custom domain that's associated with an App Runner service. type CustomDomain struct { // An associated custom domain endpoint. It can be a root domain (for example, @@ -275,8 +275,8 @@ type CustomDomain struct { noSmithyDocumentSerde } -// Describes a custom encryption key that AWS App Runner uses to encrypt copies of -// the source repository and service logs. +// Describes a custom encryption key that App Runner uses to encrypt copies of the +// source repository and service logs. type EncryptionConfiguration struct { // The ARN of the KMS key that's used for encryption. @@ -287,12 +287,12 @@ type EncryptionConfiguration struct { noSmithyDocumentSerde } -// Describes the settings for the health check that AWS App Runner performs to -// monitor the health of a service. +// Describes the settings for the health check that App Runner performs to monitor +// the health of a service. type HealthCheckConfiguration struct { // The number of consecutive checks that must succeed before App Runner decides - // that the service is healthy. Default: 3 + // that the service is healthy. Default: 1 HealthyThreshold *int32 // The time interval, in seconds, between health checks. Default: 5 @@ -312,14 +312,14 @@ type HealthCheckConfiguration struct { Timeout *int32 // The number of consecutive checks that must fail before App Runner decides that - // the service is unhealthy. Default: 3 + // the service is unhealthy. Default: 5 UnhealthyThreshold *int32 noSmithyDocumentSerde } -// Describes the configuration that AWS App Runner uses to run an App Runner -// service using an image pulled from a source image repository. +// Describes the configuration that App Runner uses to run an App Runner service +// using an image pulled from a source image repository. type ImageConfiguration struct { // The port that your application listens to in the container. Default: 8080 @@ -362,8 +362,8 @@ type ImageRepository struct { noSmithyDocumentSerde } -// Describes the runtime configuration of an AWS App Runner service instance -// (scaling unit). +// Describes the runtime configuration of an App Runner service instance (scaling +// unit). type InstanceConfiguration struct { // The number of CPU units reserved for each instance of your App Runner service. @@ -372,7 +372,7 @@ type InstanceConfiguration struct { // The Amazon Resource Name (ARN) of an IAM role that provides permissions to your // App Runner service. These are permissions that your code needs when it calls any - // AWS APIs. + // Amazon Web Services APIs. InstanceRoleArn *string // The amount of memory, in MB or GB, reserved for each instance of your App Runner @@ -382,7 +382,7 @@ type InstanceConfiguration struct { noSmithyDocumentSerde } -// Provides summary information for an operation that occurred on an AWS App Runner +// Provides summary information for an operation that occurred on an App Runner // service. type OperationSummary struct { @@ -413,7 +413,7 @@ type OperationSummary struct { noSmithyDocumentSerde } -// Describes an AWS App Runner service. It can describe a service in any state, +// Describes an App Runner service. It can describe a service in any state, // including deleted services. This type contains the full information about a // service, including configuration details. It's returned by the CreateService // (https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html), @@ -449,8 +449,8 @@ type Service struct { // This member is required. ServiceArn *string - // An ID that App Runner generated for this service. It's unique within the AWS - // Region. + // An ID that App Runner generated for this service. It's unique within the Amazon + // Web Services Region. // // This member is required. ServiceId *string @@ -500,7 +500,7 @@ type Service struct { // The encryption key that App Runner uses to encrypt the service logs and the copy // of the source repository that App Runner maintains for the service. It can be - // either a customer-provided encryption key or an AWS managed CMK. + // either a customer-provided encryption key or an Amazon Web Services managed CMK. EncryptionConfiguration *EncryptionConfiguration // The settings for the health check that App Runner performs to monitor the health @@ -510,7 +510,7 @@ type Service struct { noSmithyDocumentSerde } -// Provides summary information for an AWS App Runner service. This type contains +// Provides summary information for an App Runner service. This type contains // limited information about a service. It doesn't include configuration details. // It's returned by the ListServices // (https://docs.aws.amazon.com/apprunner/latest/api/API_ListServices.html) action. @@ -531,8 +531,8 @@ type ServiceSummary struct { // The Amazon Resource Name (ARN) of this service. ServiceArn *string - // An ID that App Runner generated for this service. It's unique within the AWS - // Region. + // An ID that App Runner generated for this service. It's unique within the Amazon + // Web Services Region. ServiceId *string // The customer-provided service name. @@ -563,7 +563,7 @@ type ServiceSummary struct { noSmithyDocumentSerde } -// Identifies a version of code that AWS App Runner refers to within a source code +// Identifies a version of code that App Runner refers to within a source code // repository. type SourceCodeVersion struct { @@ -582,8 +582,8 @@ type SourceCodeVersion struct { noSmithyDocumentSerde } -// Describes the source deployed to an AWS App Runner service. It can be a code or -// an image repository. +// Describes the source deployed to an App Runner service. It can be a code or an +// image repository. type SourceConfiguration struct { // Describes the resources that are needed to authenticate access to some source @@ -591,8 +591,12 @@ type SourceConfiguration struct { AuthenticationConfiguration *AuthenticationConfiguration // If true, continuous integration from the source repository is enabled for the - // App Runner service. Each repository change (source code commit or new image - // version) starts a deployment. Default: true + // App Runner service. Each repository change (including any source code commit or + // new image version) starts a deployment. Default: App Runner sets to false for a + // source image that uses an ECR Public repository or an ECR repository that's in + // an Amazon Web Services account other than the one that the service is in. App + // Runner sets to true in all other cases (which currently include a source code + // repository or a source image using a same-account ECR repository). AutoDeploymentsEnabled *bool // The description of a source code repository. You must provide either this member @@ -606,8 +610,8 @@ type SourceConfiguration struct { noSmithyDocumentSerde } -// Describes a tag that is applied to an AWS App Runner resource. A tag is a -// metadata item consisting of a key-value pair. +// Describes a tag that is applied to an App Runner resource. A tag is a metadata +// item consisting of a key-value pair. type Tag struct { // The key of the tag. diff --git a/service/backup/api_op_CreateFramework.go b/service/backup/api_op_CreateFramework.go index b2d130e318f..0976335fc68 100644 --- a/service/backup/api_op_CreateFramework.go +++ b/service/backup/api_op_CreateFramework.go @@ -15,8 +15,8 @@ import ( // Creates a framework with one or more controls. A framework is a collection of // controls that you can use to evaluate your backup practices. By using pre-built // customizable controls to define your policies, you can evaluate whether your -// backup practices comply with your policies. To get insights into the compliance -// status of your frameworks, you can set up automatic daily reports. +// backup practices comply with your policies and which resources are not yet in +// compliance. func (c *Client) CreateFramework(ctx context.Context, params *CreateFrameworkInput, optFns ...func(*Options)) (*CreateFrameworkOutput, error) { if params == nil { params = &CreateFrameworkInput{} diff --git a/service/backup/api_op_CreateReportPlan.go b/service/backup/api_op_CreateReportPlan.go index ec0bc0a31cf..cb0a702f0d6 100644 --- a/service/backup/api_op_CreateReportPlan.go +++ b/service/backup/api_op_CreateReportPlan.go @@ -10,6 +10,7 @@ import ( "github.com/aws/aws-sdk-go-v2/service/backup/types" "github.com/aws/smithy-go/middleware" smithyhttp "github.com/aws/smithy-go/transport/http" + "time" ) // Creates a report plan. A report plan is a document that contains information @@ -48,8 +49,11 @@ type CreateReportPlanInput struct { ReportPlanName *string // Identifies the report template for the report. Reports are built using a report - // template. The report templates are: BACKUP_JOB_REPORT | COPY_JOB_REPORT | - // RESTORE_JOB_REPORT + // template. The report templates are: RESOURCE_COMPLIANCE_REPORT | + // CONTROL_COMPLIANCE_REPORT | BACKUP_JOB_REPORT | COPY_JOB_REPORT | + // RESTORE_JOB_REPORT If the report template is RESOURCE_COMPLIANCE_REPORT or + // CONTROL_COMPLIANCE_REPORT, this API resource also describes the report coverage + // by Amazon Web Services Regions and frameworks. // // This member is required. ReportSetting *types.ReportSetting @@ -62,7 +66,7 @@ type CreateReportPlanInput struct { // An optional description of the report plan with a maximum of 1,024 characters. ReportPlanDescription *string - // Metadata that you can assign to help organize the frameworks that you create. + // Metadata that you can assign to help organize the report plans that you create. // Each tag is a key-value pair. ReportPlanTags map[string]string @@ -71,6 +75,12 @@ type CreateReportPlanInput struct { type CreateReportPlanOutput struct { + // The date and time a backup vault is created, in Unix format and Coordinated + // Universal Time (UTC). The value of CreationTime is accurate to milliseconds. For + // example, the value 1516925490.087 represents Friday, January 26, 2018 + // 12:11:30.087 AM. + CreationTime *time.Time + // An Amazon Resource Name (ARN) that uniquely identifies a resource. The format of // the ARN depends on the resource type. ReportPlanArn *string diff --git a/service/backup/api_op_DeleteBackupVaultLockConfiguration.go b/service/backup/api_op_DeleteBackupVaultLockConfiguration.go new file mode 100644 index 00000000000..e6dd0515ce1 --- /dev/null +++ b/service/backup/api_op_DeleteBackupVaultLockConfiguration.go @@ -0,0 +1,121 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package backup + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Deletes Backup Vault Lock from a backup vault specified by a backup vault name. +// If the Vault Lock configuration is immutable, then you cannot delete Vault Lock +// using API operations, and you will receive an InvalidRequestException if you +// attempt to do so. For more information, see Vault Lock +// (https://docs.aws.amazon.com/aws-backup/latest/devguide/vault-lock.html) in the +// Backup Developer Guide. +func (c *Client) DeleteBackupVaultLockConfiguration(ctx context.Context, params *DeleteBackupVaultLockConfigurationInput, optFns ...func(*Options)) (*DeleteBackupVaultLockConfigurationOutput, error) { + if params == nil { + params = &DeleteBackupVaultLockConfigurationInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteBackupVaultLockConfiguration", params, optFns, c.addOperationDeleteBackupVaultLockConfigurationMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteBackupVaultLockConfigurationOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteBackupVaultLockConfigurationInput struct { + + // The name of the backup vault from which to delete Backup Vault Lock. + // + // This member is required. + BackupVaultName *string + + noSmithyDocumentSerde +} + +type DeleteBackupVaultLockConfigurationOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteBackupVaultLockConfigurationMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpDeleteBackupVaultLockConfiguration{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDeleteBackupVaultLockConfiguration{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpDeleteBackupVaultLockConfigurationValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteBackupVaultLockConfiguration(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDeleteBackupVaultLockConfiguration(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "backup", + OperationName: "DeleteBackupVaultLockConfiguration", + } +} diff --git a/service/backup/api_op_DescribeBackupVault.go b/service/backup/api_op_DescribeBackupVault.go index ac3e36803e3..6a476388418 100644 --- a/service/backup/api_op_DescribeBackupVault.go +++ b/service/backup/api_op_DescribeBackupVault.go @@ -67,6 +67,42 @@ type DescribeBackupVaultOutput struct { // arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab. EncryptionKeyArn *string + // The date and time when Backup Vault Lock configuration cannot be changed or + // deleted. If you applied Vault Lock to your vault without specifying a lock date, + // you can change any of your Vault Lock settings, or delete Vault Lock from the + // vault entirely, at any time. This value is in Unix format, Coordinated Universal + // Time (UTC), and accurate to milliseconds. For example, the value 1516925490.087 + // represents Friday, January 26, 2018 12:11:30.087 AM. + LockDate *time.Time + + // A Boolean that indicates whether Backup Vault Lock is currently protecting the + // backup vault. True means that Vault Lock causes delete or update operations on + // the recovery points stored in the vault to fail. + Locked *bool + + // The Backup Vault Lock setting that specifies the maximum retention period that + // the vault retains its recovery points. If this parameter is not specified, Vault + // Lock does not enforce a maximum retention period on the recovery points in the + // vault (allowing indefinite storage). If specified, any backup or copy job to the + // vault must have a lifecycle policy with a retention period equal to or shorter + // than the maximum retention period. If the job's retention period is longer than + // that maximum retention period, then the vault fails the backup or copy job, and + // you should either modify your lifecycle settings or use a different vault. + // Recovery points already stored in the vault prior to Vault Lock are not + // affected. + MaxRetentionDays *int64 + + // The Backup Vault Lock setting that specifies the minimum retention period that + // the vault retains its recovery points. If this parameter is not specified, Vault + // Lock does not enforce a minimum retention period. If specified, any backup or + // copy job to the vault must have a lifecycle policy with a retention period equal + // to or longer than the minimum retention period. If the job's retention period is + // shorter than that minimum retention period, then the vault fails the backup or + // copy job, and you should either modify your lifecycle settings or use a + // different vault. Recovery points already stored in the vault prior to Vault Lock + // are not affected. + MinRetentionDays *int64 + // The number of recovery points that are stored in a backup vault. NumberOfRecoveryPoints int64 diff --git a/service/backup/api_op_GetSupportedResourceTypes.go b/service/backup/api_op_GetSupportedResourceTypes.go index 6937f142312..b403744eb9f 100644 --- a/service/backup/api_op_GetSupportedResourceTypes.go +++ b/service/backup/api_op_GetSupportedResourceTypes.go @@ -35,22 +35,24 @@ type GetSupportedResourceTypesOutput struct { // Contains a string with the supported Amazon Web Services resource types: // // * - // DynamoDB for Amazon DynamoDB + // Aurora for Amazon Aurora // - // * EBS for Amazon Elastic Block Store + // * DynamoDB for Amazon DynamoDB // - // * EC2 for - // Amazon Elastic Compute Cloud + // * EBS for Amazon + // Elastic Block Store // - // * EFS for Amazon Elastic File System + // * EC2 for Amazon Elastic Compute Cloud // - // * RDS for - // Amazon Relational Database Service + // * EFS for Amazon + // Elastic File System // - // * Aurora for Amazon Aurora + // * FSX for Amazon FSx // - // * Storage - // Gateway for Storage Gateway + // * RDS for Amazon Relational Database + // Service + // + // * Storage Gateway for Storage Gateway ResourceTypes []string // Metadata pertaining to the operation's result. diff --git a/service/backup/api_op_PutBackupVaultLockConfiguration.go b/service/backup/api_op_PutBackupVaultLockConfiguration.go new file mode 100644 index 00000000000..b19fb21d459 --- /dev/null +++ b/service/backup/api_op_PutBackupVaultLockConfiguration.go @@ -0,0 +1,164 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package backup + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Applies Backup Vault Lock to a backup vault, preventing attempts to delete any +// recovery point stored in or created in a backup vault. Vault Lock also prevents +// attempts to update the lifecycle policy that controls the retention period of +// any recovery point currently stored in a backup vault. If specified, Vault Lock +// enforces a minimum and maximum retention period for future backup and copy jobs +// that target a backup vault. +func (c *Client) PutBackupVaultLockConfiguration(ctx context.Context, params *PutBackupVaultLockConfigurationInput, optFns ...func(*Options)) (*PutBackupVaultLockConfigurationOutput, error) { + if params == nil { + params = &PutBackupVaultLockConfigurationInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "PutBackupVaultLockConfiguration", params, optFns, c.addOperationPutBackupVaultLockConfigurationMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*PutBackupVaultLockConfigurationOutput) + out.ResultMetadata = metadata + return out, nil +} + +type PutBackupVaultLockConfigurationInput struct { + + // The Backup Vault Lock configuration that specifies the name of the backup vault + // it protects. + // + // This member is required. + BackupVaultName *string + + // The Backup Vault Lock configuration that specifies the number of days before the + // lock date. For example, setting ChangeableForDays to 30 on Jan. 1, 2022 at 8pm + // UTC will set the lock date to Jan. 31, 2022 at 8pm UTC. Backup enforces a + // 72-hour cooling-off period before Vault Lock takes effect and becomes immutable. + // Therefore, you must set ChangeableForDays to 3 or greater. Before the lock date, + // you can delete Vault Lock from the vault using + // DeleteBackupVaultLockConfiguration or change the Vault Lock configuration using + // PutBackupVaultLockConfiguration. On and after the lock date, the Vault Lock + // becomes immutable and cannot be changed or deleted. If this parameter is not + // specified, you can delete Vault Lock from the vault using + // DeleteBackupVaultLockConfiguration or change the Vault Lock configuration using + // PutBackupVaultLockConfiguration at any time. + ChangeableForDays *int64 + + // The Backup Vault Lock configuration that specifies the maximum retention period + // that the vault retains its recovery points. This setting can be useful if, for + // example, your organization's policies require you to destroy certain data after + // retaining it for four years (1460 days). If this parameter is not included, + // Vault Lock does not enforce a maximum retention period on the recovery points in + // the vault. If this parameter is included without a value, Vault Lock will not + // enforce a maximum retention period. If this parameter is specified, any backup + // or copy job to the vault must have a lifecycle policy with a retention period + // equal to or shorter than the maximum retention period. If the job's retention + // period is longer than that maximum retention period, then the vault fails the + // backup or copy job, and you should either modify your lifecycle settings or use + // a different vault. Recovery points already saved in the vault prior to Vault + // Lock are not affected. + MaxRetentionDays *int64 + + // The Backup Vault Lock configuration that specifies the minimum retention period + // that the vault retains its recovery points. This setting can be useful if, for + // example, your organization's policies require you to retain certain data for at + // least seven years (2555 days). If this parameter is not specified, Vault Lock + // will not enforce a minimum retention period. If this parameter is specified, any + // backup or copy job to the vault must have a lifecycle policy with a retention + // period equal to or longer than the minimum retention period. If the job's + // retention period is shorter than that minimum retention period, then the vault + // fails that backup or copy job, and you should either modify your lifecycle + // settings or use a different vault. Recovery points already saved in the vault + // prior to Vault Lock are not affected. + MinRetentionDays *int64 + + noSmithyDocumentSerde +} + +type PutBackupVaultLockConfigurationOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationPutBackupVaultLockConfigurationMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpPutBackupVaultLockConfiguration{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpPutBackupVaultLockConfiguration{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpPutBackupVaultLockConfigurationValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opPutBackupVaultLockConfiguration(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opPutBackupVaultLockConfiguration(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "backup", + OperationName: "PutBackupVaultLockConfiguration", + } +} diff --git a/service/backup/api_op_UpdateReportPlan.go b/service/backup/api_op_UpdateReportPlan.go index 7ebdd4ab12a..626c00a9ec9 100644 --- a/service/backup/api_op_UpdateReportPlan.go +++ b/service/backup/api_op_UpdateReportPlan.go @@ -53,8 +53,11 @@ type UpdateReportPlanInput struct { ReportPlanDescription *string // Identifies the report template for the report. Reports are built using a report - // template. The report templates are: BACKUP_JOB_REPORT | COPY_JOB_REPORT | - // RESTORE_JOB_REPORT + // template. The report templates are: RESOURCE_COMPLIANCE_REPORT | + // CONTROL_COMPLIANCE_REPORT | BACKUP_JOB_REPORT | COPY_JOB_REPORT | + // RESTORE_JOB_REPORT If the report template is RESOURCE_COMPLIANCE_REPORT or + // CONTROL_COMPLIANCE_REPORT, this API resource also describes the report coverage + // by Amazon Web Services Regions and frameworks. ReportSetting *types.ReportSetting noSmithyDocumentSerde diff --git a/service/backup/deserializers.go b/service/backup/deserializers.go index 41bdda98a94..6fbe264ca99 100644 --- a/service/backup/deserializers.go +++ b/service/backup/deserializers.go @@ -915,6 +915,22 @@ func awsRestjson1_deserializeOpDocumentCreateReportPlanOutput(v **CreateReportPl for key, value := range shape { switch key { + case "CreationTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CreationTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected timestamp to be a JSON Number, got %T instead", value) + + } + } + case "ReportPlanArn": if value != nil { jtv, ok := value.(string) @@ -1436,6 +1452,107 @@ func awsRestjson1_deserializeOpErrorDeleteBackupVaultAccessPolicy(response *smit } } +type awsRestjson1_deserializeOpDeleteBackupVaultLockConfiguration struct { +} + +func (*awsRestjson1_deserializeOpDeleteBackupVaultLockConfiguration) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDeleteBackupVaultLockConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDeleteBackupVaultLockConfiguration(response, &metadata) + } + output := &DeleteBackupVaultLockConfigurationOutput{} + out.Result = output + + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDeleteBackupVaultLockConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("InvalidParameterValueException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("MissingParameterValueException", errorCode): + return awsRestjson1_deserializeErrorMissingParameterValueException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsRestjson1_deserializeOpDeleteBackupVaultNotifications struct { } @@ -2396,6 +2513,57 @@ func awsRestjson1_deserializeOpDocumentDescribeBackupVaultOutput(v **DescribeBac sv.EncryptionKeyArn = ptr.String(jtv) } + case "LockDate": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.LockDate = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "Locked": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Locked = ptr.Bool(jtv) + } + + case "MaxRetentionDays": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Long to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.MaxRetentionDays = ptr.Int64(i64) + } + + case "MinRetentionDays": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Long to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.MinRetentionDays = ptr.Int64(i64) + } + case "NumberOfRecoveryPoints": if value != nil { jtv, ok := value.(json.Number) @@ -8477,6 +8645,107 @@ func awsRestjson1_deserializeOpErrorPutBackupVaultAccessPolicy(response *smithyh } } +type awsRestjson1_deserializeOpPutBackupVaultLockConfiguration struct { +} + +func (*awsRestjson1_deserializeOpPutBackupVaultLockConfiguration) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpPutBackupVaultLockConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorPutBackupVaultLockConfiguration(response, &metadata) + } + output := &PutBackupVaultLockConfigurationOutput{} + out.Result = output + + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorPutBackupVaultLockConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("InvalidParameterValueException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("MissingParameterValueException", errorCode): + return awsRestjson1_deserializeErrorMissingParameterValueException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsRestjson1_deserializeOpPutBackupVaultNotifications struct { } @@ -9865,6 +10134,9 @@ func awsRestjson1_deserializeOpErrorUpdateFramework(response *smithyhttp.Respons } switch { + case strings.EqualFold("AlreadyExistsException", errorCode): + return awsRestjson1_deserializeErrorAlreadyExistsException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): return awsRestjson1_deserializeErrorConflictException(response, errorBody) @@ -12161,6 +12433,57 @@ func awsRestjson1_deserializeDocumentBackupVaultListMember(v **types.BackupVault sv.EncryptionKeyArn = ptr.String(jtv) } + case "LockDate": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.LockDate = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "Locked": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Locked = ptr.Bool(jtv) + } + + case "MaxRetentionDays": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Long to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.MaxRetentionDays = ptr.Int64(i64) + } + + case "MinRetentionDays": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Long to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.MinRetentionDays = ptr.Int64(i64) + } + case "NumberOfRecoveryPoints": if value != nil { jtv, ok := value.(json.Number) @@ -14616,6 +14939,24 @@ func awsRestjson1_deserializeDocumentReportSetting(v **types.ReportSetting, valu for key, value := range shape { switch key { + case "FrameworkArns": + if err := awsRestjson1_deserializeDocumentStringList(&sv.FrameworkArns, value); err != nil { + return err + } + + case "NumberOfFrameworks": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.NumberOfFrameworks = int32(i64) + } + case "ReportTemplate": if value != nil { jtv, ok := value.(string) diff --git a/service/backup/generated.json b/service/backup/generated.json index 4877dde16d3..894448a5c65 100644 --- a/service/backup/generated.json +++ b/service/backup/generated.json @@ -14,6 +14,7 @@ "api_op_DeleteBackupSelection.go", "api_op_DeleteBackupVault.go", "api_op_DeleteBackupVaultAccessPolicy.go", + "api_op_DeleteBackupVaultLockConfiguration.go", "api_op_DeleteBackupVaultNotifications.go", "api_op_DeleteFramework.go", "api_op_DeleteRecoveryPoint.go", @@ -55,6 +56,7 @@ "api_op_ListRestoreJobs.go", "api_op_ListTags.go", "api_op_PutBackupVaultAccessPolicy.go", + "api_op_PutBackupVaultLockConfiguration.go", "api_op_PutBackupVaultNotifications.go", "api_op_StartBackupJob.go", "api_op_StartCopyJob.go", diff --git a/service/backup/serializers.go b/service/backup/serializers.go index f344622933e..f646949ca21 100644 --- a/service/backup/serializers.go +++ b/service/backup/serializers.go @@ -710,6 +710,64 @@ func awsRestjson1_serializeOpHttpBindingsDeleteBackupVaultAccessPolicyInput(v *D return nil } +type awsRestjson1_serializeOpDeleteBackupVaultLockConfiguration struct { +} + +func (*awsRestjson1_serializeOpDeleteBackupVaultLockConfiguration) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDeleteBackupVaultLockConfiguration) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DeleteBackupVaultLockConfigurationInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/backup-vaults/{BackupVaultName}/vault-lock") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "DELETE" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsDeleteBackupVaultLockConfigurationInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsDeleteBackupVaultLockConfigurationInput(v *DeleteBackupVaultLockConfigurationInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.BackupVaultName == nil || len(*v.BackupVaultName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member BackupVaultName must not be empty")} + } + if v.BackupVaultName != nil { + if err := encoder.SetURI("BackupVaultName").String(*v.BackupVaultName); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpDeleteBackupVaultNotifications struct { } @@ -3273,6 +3331,97 @@ func awsRestjson1_serializeOpDocumentPutBackupVaultAccessPolicyInput(v *PutBacku return nil } +type awsRestjson1_serializeOpPutBackupVaultLockConfiguration struct { +} + +func (*awsRestjson1_serializeOpPutBackupVaultLockConfiguration) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpPutBackupVaultLockConfiguration) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*PutBackupVaultLockConfigurationInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/backup-vaults/{BackupVaultName}/vault-lock") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "PUT" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsPutBackupVaultLockConfigurationInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentPutBackupVaultLockConfigurationInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsPutBackupVaultLockConfigurationInput(v *PutBackupVaultLockConfigurationInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.BackupVaultName == nil || len(*v.BackupVaultName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member BackupVaultName must not be empty")} + } + if v.BackupVaultName != nil { + if err := encoder.SetURI("BackupVaultName").String(*v.BackupVaultName); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentPutBackupVaultLockConfigurationInput(v *PutBackupVaultLockConfigurationInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ChangeableForDays != nil { + ok := object.Key("ChangeableForDays") + ok.Long(*v.ChangeableForDays) + } + + if v.MaxRetentionDays != nil { + ok := object.Key("MaxRetentionDays") + ok.Long(*v.MaxRetentionDays) + } + + if v.MinRetentionDays != nil { + ok := object.Key("MinRetentionDays") + ok.Long(*v.MinRetentionDays) + } + + return nil +} + type awsRestjson1_serializeOpPutBackupVaultNotifications struct { } @@ -4908,6 +5057,18 @@ func awsRestjson1_serializeDocumentReportSetting(v *types.ReportSetting, value s object := value.Object() defer object.Close() + if v.FrameworkArns != nil { + ok := object.Key("FrameworkArns") + if err := awsRestjson1_serializeDocumentStringList(v.FrameworkArns, ok); err != nil { + return err + } + } + + if v.NumberOfFrameworks != 0 { + ok := object.Key("NumberOfFrameworks") + ok.Integer(v.NumberOfFrameworks) + } + if v.ReportTemplate != nil { ok := object.Key("ReportTemplate") ok.String(*v.ReportTemplate) @@ -4949,6 +5110,17 @@ func awsRestjson1_serializeDocumentResourceTypeOptInPreference(v map[string]bool return nil } +func awsRestjson1_serializeDocumentStringList(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + func awsRestjson1_serializeDocumentStringMap(v map[string]string, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/backup/types/types.go b/service/backup/types/types.go index 4e781b2d3aa..dcccfa2e177 100644 --- a/service/backup/types/types.go +++ b/service/backup/types/types.go @@ -158,8 +158,7 @@ type BackupPlan struct { // Contains an optional backup plan display name and an array of BackupRule // objects, each of which specifies a backup rule. Each rule in a backup plan is a -// separate scheduled task and can back up a different selection of Amazon Web -// Services resources. +// separate scheduled task. type BackupPlanInput struct { // The optional display name of a backup plan. @@ -436,6 +435,43 @@ type BackupVaultListMember struct { // arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab. EncryptionKeyArn *string + // The date and time when Backup Vault Lock configuration becomes immutable, + // meaning it cannot be changed or deleted. If you applied Vault Lock to your vault + // without specifying a lock date, you can change your Vault Lock settings, or + // delete Vault Lock from the vault entirely, at any time. This value is in Unix + // format, Coordinated Universal Time (UTC), and accurate to milliseconds. For + // example, the value 1516925490.087 represents Friday, January 26, 2018 + // 12:11:30.087 AM. + LockDate *time.Time + + // A Boolean value that indicates whether Backup Vault Lock applies to the selected + // backup vault. If true, Vault Lock prevents delete and update operations on the + // recovery points in the selected vault. + Locked *bool + + // The Backup Vault Lock setting that specifies the maximum retention period that + // the vault retains its recovery points. If this parameter is not specified, Vault + // Lock does not enforce a maximum retention period on the recovery points in the + // vault (allowing indefinite storage). If specified, any backup or copy job to the + // vault must have a lifecycle policy with a retention period equal to or shorter + // than the maximum retention period. If the job's retention period is longer than + // that maximum retention period, then the vault fails the backup or copy job, and + // you should either modify your lifecycle settings or use a different vault. + // Recovery points already stored in the vault prior to Vault Lock are not + // affected. + MaxRetentionDays *int64 + + // The Backup Vault Lock setting that specifies the minimum retention period that + // the vault retains its recovery points. If this parameter is not specified, Vault + // Lock does not enforce a minimum retention period. If specified, any backup or + // copy job to the vault must have a lifecycle policy with a retention period equal + // to or longer than the minimum retention period. If the job's retention period is + // shorter than that minimum retention period, then the vault fails the backup or + // copy job, and you should either modify your lifecycle settings or use a + // different vault. Recovery points already stored in the vault prior to Vault Lock + // are not affected. + MinRetentionDays *int64 + // The number of recovery points that are stored in a backup vault. NumberOfRecoveryPoints int64 @@ -512,8 +548,8 @@ type ControlInputParameter struct { // CreateFramework. type ControlScope struct { - // Describes whether the control scope includes a specific resource identified by - // its unique Amazon Resource Name (ARN). + // The ID of the only Amazon Web Services resource that you want your control scope + // to contain. ComplianceResourceIds []string // Describes whether the control scope includes one or more types of resources, @@ -934,7 +970,8 @@ type ReportJob struct { ReportPlanArn *string // Identifies the report template for the report. Reports are built using a report - // template. The report templates are: BACKUP_JOB_REPORT | COPY_JOB_REPORT | + // template. The report templates are: RESOURCE_COMPLIANCE_REPORT | + // CONTROL_COMPLIANCE_REPORT | BACKUP_JOB_REPORT | COPY_JOB_REPORT | // RESTORE_JOB_REPORT ReportTemplate *string @@ -992,8 +1029,11 @@ type ReportPlan struct { ReportPlanName *string // Identifies the report template for the report. Reports are built using a report - // template. The report templates are: BACKUP_JOB_REPORT | COPY_JOB_REPORT | - // RESTORE_JOB_REPORT + // template. The report templates are: RESOURCE_COMPLIANCE_REPORT | + // CONTROL_COMPLIANCE_REPORT | BACKUP_JOB_REPORT | COPY_JOB_REPORT | + // RESTORE_JOB_REPORT If the report template is RESOURCE_COMPLIANCE_REPORT or + // CONTROL_COMPLIANCE_REPORT, this API resource also describes the report coverage + // by Amazon Web Services Regions and frameworks. ReportSetting *ReportSetting noSmithyDocumentSerde @@ -1003,12 +1043,19 @@ type ReportPlan struct { type ReportSetting struct { // Identifies the report template for the report. Reports are built using a report - // template. The report templates are: BACKUP_JOB_REPORT | COPY_JOB_REPORT | + // template. The report templates are: RESOURCE_COMPLIANCE_REPORT | + // CONTROL_COMPLIANCE_REPORT | BACKUP_JOB_REPORT | COPY_JOB_REPORT | // RESTORE_JOB_REPORT // // This member is required. ReportTemplate *string + // The Amazon Resource Names (ARNs) of the frameworks a report covers. + FrameworkArns []string + + // The number of frameworks a report covers. + NumberOfFrameworks int32 + noSmithyDocumentSerde } diff --git a/service/backup/validators.go b/service/backup/validators.go index 27d0a81cf0a..f93b9be95a3 100644 --- a/service/backup/validators.go +++ b/service/backup/validators.go @@ -190,6 +190,26 @@ func (m *validateOpDeleteBackupVault) HandleInitialize(ctx context.Context, in m return next.HandleInitialize(ctx, in) } +type validateOpDeleteBackupVaultLockConfiguration struct { +} + +func (*validateOpDeleteBackupVaultLockConfiguration) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteBackupVaultLockConfiguration) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteBackupVaultLockConfigurationInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteBackupVaultLockConfigurationInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeleteBackupVaultNotifications struct { } @@ -750,6 +770,26 @@ func (m *validateOpPutBackupVaultAccessPolicy) HandleInitialize(ctx context.Cont return next.HandleInitialize(ctx, in) } +type validateOpPutBackupVaultLockConfiguration struct { +} + +func (*validateOpPutBackupVaultLockConfiguration) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpPutBackupVaultLockConfiguration) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*PutBackupVaultLockConfigurationInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpPutBackupVaultLockConfigurationInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpPutBackupVaultNotifications struct { } @@ -1026,6 +1066,10 @@ func addOpDeleteBackupVaultValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteBackupVault{}, middleware.After) } +func addOpDeleteBackupVaultLockConfigurationValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteBackupVaultLockConfiguration{}, middleware.After) +} + func addOpDeleteBackupVaultNotificationsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteBackupVaultNotifications{}, middleware.After) } @@ -1138,6 +1182,10 @@ func addOpPutBackupVaultAccessPolicyValidationMiddleware(stack *middleware.Stack return stack.Initialize.Add(&validateOpPutBackupVaultAccessPolicy{}, middleware.After) } +func addOpPutBackupVaultLockConfigurationValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpPutBackupVaultLockConfiguration{}, middleware.After) +} + func addOpPutBackupVaultNotificationsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpPutBackupVaultNotifications{}, middleware.After) } @@ -1573,6 +1621,21 @@ func validateOpDeleteBackupVaultInput(v *DeleteBackupVaultInput) error { } } +func validateOpDeleteBackupVaultLockConfigurationInput(v *DeleteBackupVaultLockConfigurationInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteBackupVaultLockConfigurationInput"} + if v.BackupVaultName == nil { + invalidParams.Add(smithy.NewErrParamRequired("BackupVaultName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDeleteBackupVaultNotificationsInput(v *DeleteBackupVaultNotificationsInput) error { if v == nil { return nil @@ -2008,6 +2071,21 @@ func validateOpPutBackupVaultAccessPolicyInput(v *PutBackupVaultAccessPolicyInpu } } +func validateOpPutBackupVaultLockConfigurationInput(v *PutBackupVaultLockConfigurationInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "PutBackupVaultLockConfigurationInput"} + if v.BackupVaultName == nil { + invalidParams.Add(smithy.NewErrParamRequired("BackupVaultName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpPutBackupVaultNotificationsInput(v *PutBackupVaultNotificationsInput) error { if v == nil { return nil diff --git a/service/chime/api_op_CreateMediaCapturePipeline.go b/service/chime/api_op_CreateMediaCapturePipeline.go index 59a9d46b31d..494ded50749 100644 --- a/service/chime/api_op_CreateMediaCapturePipeline.go +++ b/service/chime/api_op_CreateMediaCapturePipeline.go @@ -52,6 +52,10 @@ type CreateMediaCapturePipelineInput struct { // This member is required. SourceType types.MediaPipelineSourceType + // The configuration for a specified media capture pipeline. SourceType must be + // ChimeSdkMeeting. + ChimeSdkMeetingConfiguration *types.ChimeSdkMeetingConfiguration + // The token assigned to the client making the pipeline request. ClientRequestToken *string diff --git a/service/chime/api_op_UpdateGlobalSettings.go b/service/chime/api_op_UpdateGlobalSettings.go index 22580a84f1f..86e81d81b28 100644 --- a/service/chime/api_op_UpdateGlobalSettings.go +++ b/service/chime/api_op_UpdateGlobalSettings.go @@ -31,13 +31,9 @@ func (c *Client) UpdateGlobalSettings(ctx context.Context, params *UpdateGlobalS type UpdateGlobalSettingsInput struct { // The Amazon Chime Business Calling settings. - // - // This member is required. BusinessCalling *types.BusinessCallingSettings // The Amazon Chime Voice Connector settings. - // - // This member is required. VoiceConnector *types.VoiceConnectorSettings noSmithyDocumentSerde @@ -95,9 +91,6 @@ func (c *Client) addOperationUpdateGlobalSettingsMiddlewares(stack *middleware.S if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { return err } - if err = addOpUpdateGlobalSettingsValidationMiddleware(stack); err != nil { - return err - } if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateGlobalSettings(options.Region), middleware.Before); err != nil { return err } diff --git a/service/chime/deserializers.go b/service/chime/deserializers.go index f7926a9bd9a..9fef5a5e925 100644 --- a/service/chime/deserializers.go +++ b/service/chime/deserializers.go @@ -27255,6 +27255,9 @@ func awsRestjson1_deserializeOpErrorUpdatePhoneNumber(response *smithyhttp.Respo case strings.EqualFold("BadRequestException", errorCode): return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("ForbiddenException", errorCode): return awsRestjson1_deserializeErrorForbiddenException(response, errorBody) @@ -30385,6 +30388,52 @@ func awsRestjson1_deserializeDocumentAppInstanceUserSummary(v **types.AppInstanc return nil } +func awsRestjson1_deserializeDocumentArtifactsConfiguration(v **types.ArtifactsConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ArtifactsConfiguration + if *v == nil { + sv = &types.ArtifactsConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Audio": + if err := awsRestjson1_deserializeDocumentAudioArtifactsConfiguration(&sv.Audio, value); err != nil { + return err + } + + case "Content": + if err := awsRestjson1_deserializeDocumentContentArtifactsConfiguration(&sv.Content, value); err != nil { + return err + } + + case "Video": + if err := awsRestjson1_deserializeDocumentVideoArtifactsConfiguration(&sv.Video, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentAttendee(v **types.Attendee, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -30443,6 +30492,42 @@ func awsRestjson1_deserializeDocumentAttendee(v **types.Attendee, value interfac return nil } +func awsRestjson1_deserializeDocumentAttendeeIdList(v *[]string, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected GuidString to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentAttendeeList(v *[]types.Attendee, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -30477,6 +30562,46 @@ func awsRestjson1_deserializeDocumentAttendeeList(v *[]types.Attendee, value int return nil } +func awsRestjson1_deserializeDocumentAudioArtifactsConfiguration(v **types.AudioArtifactsConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AudioArtifactsConfiguration + if *v == nil { + sv = &types.AudioArtifactsConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "MuxType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AudioMuxType to be of type string, got %T instead", value) + } + sv.MuxType = types.AudioMuxType(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentBadRequestException(v **types.BadRequestException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -32164,6 +32289,47 @@ func awsRestjson1_deserializeDocumentChannelSummaryList(v *[]types.ChannelSummar return nil } +func awsRestjson1_deserializeDocumentChimeSdkMeetingConfiguration(v **types.ChimeSdkMeetingConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ChimeSdkMeetingConfiguration + if *v == nil { + sv = &types.ChimeSdkMeetingConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ArtifactsConfiguration": + if err := awsRestjson1_deserializeDocumentArtifactsConfiguration(&sv.ArtifactsConfiguration, value); err != nil { + return err + } + + case "SourceConfiguration": + if err := awsRestjson1_deserializeDocumentSourceConfiguration(&sv.SourceConfiguration, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentConflictException(v **types.ConflictException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -32213,6 +32379,55 @@ func awsRestjson1_deserializeDocumentConflictException(v **types.ConflictExcepti return nil } +func awsRestjson1_deserializeDocumentContentArtifactsConfiguration(v **types.ContentArtifactsConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ContentArtifactsConfiguration + if *v == nil { + sv = &types.ContentArtifactsConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "MuxType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ContentMuxType to be of type string, got %T instead", value) + } + sv.MuxType = types.ContentMuxType(jtv) + } + + case "State": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ArtifactsState to be of type string, got %T instead", value) + } + sv.State = types.ArtifactsState(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentConversationRetentionSettings(v **types.ConversationRetentionSettings, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -32537,6 +32752,42 @@ func awsRestjson1_deserializeDocumentEventsConfiguration(v **types.EventsConfigu return nil } +func awsRestjson1_deserializeDocumentExternalUserIdList(v *[]string, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ExternalUserIdType to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentForbiddenException(v **types.ForbiddenException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -32883,6 +33134,11 @@ func awsRestjson1_deserializeDocumentMediaCapturePipeline(v **types.MediaCapture for key, value := range shape { switch key { + case "ChimeSdkMeetingConfiguration": + if err := awsRestjson1_deserializeDocumentChimeSdkMeetingConfiguration(&sv.ChimeSdkMeetingConfiguration, value); err != nil { + return err + } + case "CreatedTimestamp": if value != nil { jtv, ok := value.(string) @@ -35151,6 +35407,47 @@ func awsRestjson1_deserializeDocumentRoomRetentionSettings(v **types.RoomRetenti return nil } +func awsRestjson1_deserializeDocumentSelectedVideoStreams(v **types.SelectedVideoStreams, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.SelectedVideoStreams + if *v == nil { + sv = &types.SelectedVideoStreams{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AttendeeIds": + if err := awsRestjson1_deserializeDocumentAttendeeIdList(&sv.AttendeeIds, value); err != nil { + return err + } + + case "ExternalUserIds": + if err := awsRestjson1_deserializeDocumentExternalUserIdList(&sv.ExternalUserIds, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentSensitiveStringList(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -35873,6 +36170,42 @@ func awsRestjson1_deserializeDocumentSipRuleTargetApplicationList(v *[]types.Sip return nil } +func awsRestjson1_deserializeDocumentSourceConfiguration(v **types.SourceConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.SourceConfiguration + if *v == nil { + sv = &types.SourceConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "SelectedVideoStreams": + if err := awsRestjson1_deserializeDocumentSelectedVideoStreams(&sv.SelectedVideoStreams, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentStreamingConfiguration(v **types.StreamingConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -36768,6 +37101,55 @@ func awsRestjson1_deserializeDocumentUserSettings(v **types.UserSettings, value return nil } +func awsRestjson1_deserializeDocumentVideoArtifactsConfiguration(v **types.VideoArtifactsConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.VideoArtifactsConfiguration + if *v == nil { + sv = &types.VideoArtifactsConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "MuxType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VideoMuxType to be of type string, got %T instead", value) + } + sv.MuxType = types.VideoMuxType(jtv) + } + + case "State": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ArtifactsState to be of type string, got %T instead", value) + } + sv.State = types.ArtifactsState(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentVoiceConnector(v **types.VoiceConnector, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/chime/serializers.go b/service/chime/serializers.go index e8d905fcd4c..8adca3187ea 100644 --- a/service/chime/serializers.go +++ b/service/chime/serializers.go @@ -1956,6 +1956,13 @@ func awsRestjson1_serializeOpDocumentCreateMediaCapturePipelineInput(v *CreateMe object := value.Object() defer object.Close() + if v.ChimeSdkMeetingConfiguration != nil { + ok := object.Key("ChimeSdkMeetingConfiguration") + if err := awsRestjson1_serializeDocumentChimeSdkMeetingConfiguration(v.ChimeSdkMeetingConfiguration, ok); err != nil { + return err + } + } + if v.ClientRequestToken != nil { ok := object.Key("ClientRequestToken") ok.String(*v.ClientRequestToken) @@ -14020,6 +14027,45 @@ func awsRestjson1_serializeDocumentAppInstanceStreamingConfigurationList(v []typ return nil } +func awsRestjson1_serializeDocumentArtifactsConfiguration(v *types.ArtifactsConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Audio != nil { + ok := object.Key("Audio") + if err := awsRestjson1_serializeDocumentAudioArtifactsConfiguration(v.Audio, ok); err != nil { + return err + } + } + + if v.Content != nil { + ok := object.Key("Content") + if err := awsRestjson1_serializeDocumentContentArtifactsConfiguration(v.Content, ok); err != nil { + return err + } + } + + if v.Video != nil { + ok := object.Key("Video") + if err := awsRestjson1_serializeDocumentVideoArtifactsConfiguration(v.Video, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentAttendeeIdList(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + func awsRestjson1_serializeDocumentAttendeeTagKeyList(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -14044,6 +14090,18 @@ func awsRestjson1_serializeDocumentAttendeeTagList(v []types.Tag, value smithyjs return nil } +func awsRestjson1_serializeDocumentAudioArtifactsConfiguration(v *types.AudioArtifactsConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.MuxType) > 0 { + ok := object.Key("MuxType") + ok.String(string(v.MuxType)) + } + + return nil +} + func awsRestjson1_serializeDocumentBusinessCallingSettings(v *types.BusinessCallingSettings, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -14090,6 +14148,44 @@ func awsRestjson1_serializeDocumentChannelRetentionSettings(v *types.ChannelRete return nil } +func awsRestjson1_serializeDocumentChimeSdkMeetingConfiguration(v *types.ChimeSdkMeetingConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ArtifactsConfiguration != nil { + ok := object.Key("ArtifactsConfiguration") + if err := awsRestjson1_serializeDocumentArtifactsConfiguration(v.ArtifactsConfiguration, ok); err != nil { + return err + } + } + + if v.SourceConfiguration != nil { + ok := object.Key("SourceConfiguration") + if err := awsRestjson1_serializeDocumentSourceConfiguration(v.SourceConfiguration, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentContentArtifactsConfiguration(v *types.ContentArtifactsConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.MuxType) > 0 { + ok := object.Key("MuxType") + ok.String(string(v.MuxType)) + } + + if len(v.State) > 0 { + ok := object.Key("State") + ok.String(string(v.State)) + } + + return nil +} + func awsRestjson1_serializeDocumentConversationRetentionSettings(v *types.ConversationRetentionSettings, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -14312,6 +14408,17 @@ func awsRestjson1_serializeDocumentEngineTranscribeSettings(v *types.EngineTrans return nil } +func awsRestjson1_serializeDocumentExternalUserIdList(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + func awsRestjson1_serializeDocumentGeoMatchParams(v *types.GeoMatchParams, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -14542,6 +14649,27 @@ func awsRestjson1_serializeDocumentRoomRetentionSettings(v *types.RoomRetentionS return nil } +func awsRestjson1_serializeDocumentSelectedVideoStreams(v *types.SelectedVideoStreams, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AttendeeIds != nil { + ok := object.Key("AttendeeIds") + if err := awsRestjson1_serializeDocumentAttendeeIdList(v.AttendeeIds, ok); err != nil { + return err + } + } + + if v.ExternalUserIds != nil { + ok := object.Key("ExternalUserIds") + if err := awsRestjson1_serializeDocumentExternalUserIdList(v.ExternalUserIds, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentSensitiveStringList(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -14672,6 +14800,20 @@ func awsRestjson1_serializeDocumentSMAUpdateCallArgumentsMap(v map[string]string return nil } +func awsRestjson1_serializeDocumentSourceConfiguration(v *types.SourceConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.SelectedVideoStreams != nil { + ok := object.Key("SelectedVideoStreams") + if err := awsRestjson1_serializeDocumentSelectedVideoStreams(v.SelectedVideoStreams, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentStreamingConfiguration(v *types.StreamingConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -14965,6 +15107,23 @@ func awsRestjson1_serializeDocumentUserSettings(v *types.UserSettings, value smi return nil } +func awsRestjson1_serializeDocumentVideoArtifactsConfiguration(v *types.VideoArtifactsConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.MuxType) > 0 { + ok := object.Key("MuxType") + ok.String(string(v.MuxType)) + } + + if len(v.State) > 0 { + ok := object.Key("State") + ok.String(string(v.State)) + } + + return nil +} + func awsRestjson1_serializeDocumentVoiceConnectorItem(v *types.VoiceConnectorItem, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/chime/types/enums.go b/service/chime/types/enums.go index 7f38c8608c9..5c0c886cbf0 100644 --- a/service/chime/types/enums.go +++ b/service/chime/types/enums.go @@ -60,6 +60,42 @@ func (AppInstanceDataType) Values() []AppInstanceDataType { } } +type ArtifactsState string + +// Enum values for ArtifactsState +const ( + ArtifactsStateEnabled ArtifactsState = "Enabled" + ArtifactsStateDisabled ArtifactsState = "Disabled" +) + +// Values returns all known values for ArtifactsState. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (ArtifactsState) Values() []ArtifactsState { + return []ArtifactsState{ + "Enabled", + "Disabled", + } +} + +type AudioMuxType string + +// Enum values for AudioMuxType +const ( + AudioMuxTypeAudioOnly AudioMuxType = "AudioOnly" + AudioMuxTypeAudioWithActiveSpeakerVideo AudioMuxType = "AudioWithActiveSpeakerVideo" +) + +// Values returns all known values for AudioMuxType. Note that this can be expanded +// in the future, and so it is only as up to date as the client. The ordering of +// this slice is not guaranteed to be stable across updates. +func (AudioMuxType) Values() []AudioMuxType { + return []AudioMuxType{ + "AudioOnly", + "AudioWithActiveSpeakerVideo", + } +} + type BotType string // Enum values for BotType @@ -207,6 +243,22 @@ func (ChannelPrivacy) Values() []ChannelPrivacy { } } +type ContentMuxType string + +// Enum values for ContentMuxType +const ( + ContentMuxTypeContentOnly ContentMuxType = "ContentOnly" +) + +// Values returns all known values for ContentMuxType. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (ContentMuxType) Values() []ContentMuxType { + return []ContentMuxType{ + "ContentOnly", + } +} + type EmailStatus string // Enum values for EmailStatus @@ -895,6 +947,22 @@ func (UserType) Values() []UserType { } } +type VideoMuxType string + +// Enum values for VideoMuxType +const ( + VideoMuxTypeVideoOnly VideoMuxType = "VideoOnly" +) + +// Values returns all known values for VideoMuxType. Note that this can be expanded +// in the future, and so it is only as up to date as the client. The ordering of +// this slice is not guaranteed to be stable across updates. +func (VideoMuxType) Values() []VideoMuxType { + return []VideoMuxType{ + "VideoOnly", + } +} + type VoiceConnectorAwsRegion string // Enum values for VoiceConnectorAwsRegion diff --git a/service/chime/types/types.go b/service/chime/types/types.go index f64432f1697..9fd3af641f8 100644 --- a/service/chime/types/types.go +++ b/service/chime/types/types.go @@ -216,6 +216,27 @@ type AppInstanceUserSummary struct { noSmithyDocumentSerde } +// The configuration for the artifacts. +type ArtifactsConfiguration struct { + + // The configuration for the audio artifacts. + // + // This member is required. + Audio *AudioArtifactsConfiguration + + // The configuration for the content artifacts. + // + // This member is required. + Content *ContentArtifactsConfiguration + + // The configuration for the video artifacts. + // + // This member is required. + Video *VideoArtifactsConfiguration + + noSmithyDocumentSerde +} + // An Amazon Chime SDK meeting attendee. Includes a unique AttendeeId and JoinToken // . The JoinToken allows a client to authenticate and join as the specified // attendee. The JoinToken expires when the meeting ends or when DeleteAttendee is @@ -238,6 +259,17 @@ type Attendee struct { noSmithyDocumentSerde } +// The audio artifact configuration object. +type AudioArtifactsConfiguration struct { + + // The MUX type of the audio artifact configuration object. + // + // This member is required. + MuxType AudioMuxType + + noSmithyDocumentSerde +} + // The membership information, including member ARNs, the channel ARN, and // membership types. type BatchChannelMemberships struct { @@ -563,6 +595,33 @@ type ChannelSummary struct { noSmithyDocumentSerde } +// The configuration object of the Amazon Chime SDK meeting for a specified media +// capture pipeline. SourceType must be ChimeSdkMeeting. +type ChimeSdkMeetingConfiguration struct { + + // The configuration for the artifacts in an Amazon Chime SDK meeting. + ArtifactsConfiguration *ArtifactsConfiguration + + // The source configuration for a specified media capture pipline. + SourceConfiguration *SourceConfiguration + + noSmithyDocumentSerde +} + +// The content artifact object. +type ContentArtifactsConfiguration struct { + + // Indicates whether the content artifact is enabled or disabled. + // + // This member is required. + State ArtifactsState + + // The MUX type of the artifact configuration. + MuxType ContentMuxType + + noSmithyDocumentSerde +} + // The retention settings that determine how long to retain conversation messages // for an Amazon Chime Enterprise account. type ConversationRetentionSettings struct { @@ -781,10 +840,14 @@ type LoggingConfiguration struct { noSmithyDocumentSerde } -// A media capture pipeline object. A string consisting of an ID, source type, a -// source ARN, a sink type, and a sink ARN. +// A media capture pipeline object consisting of an ID, source type, source ARN, a +// sink type, a sink ARN, and a configuration object. type MediaCapturePipeline struct { + // The configuration for a specified media capture pipeline. SourceType must be + // ChimeSdkMeeting. + ChimeSdkMeetingConfiguration *ChimeSdkMeetingConfiguration + // The time at which the capture pipeline was created, in ISO 8601 format. CreatedTimestamp *time.Time @@ -823,7 +886,7 @@ type MediaPlacement struct { // The audio host URL. AudioHostUrl *string - // The URL of the S3 bucket used to store the captured media. + // The event ingestion URL. EventIngestionUrl *string // The screen data URL. @@ -1283,6 +1346,19 @@ type RoomRetentionSettings struct { noSmithyDocumentSerde } +// The video streams to capture for a specified media capture pipeline. The total +// number of video streams can't exceed 25. +type SelectedVideoStreams struct { + + // The attendee IDs of the streams selected for a media capture pipeline. + AttendeeIds []string + + // The external user IDs of the streams selected for a media capture pipeline. + ExternalUserIds []string + + noSmithyDocumentSerde +} + // An Active Directory (AD) group whose members are granted permission to act as // delegates. type SigninDelegateGroup struct { @@ -1403,6 +1479,16 @@ type SipRuleTargetApplication struct { noSmithyDocumentSerde } +// Source configuration for a specified media capture pipeline. +type SourceConfiguration struct { + + // The selected video streams to capture for a specified media capture pipeline. + // The number of video streams can't exceed 25. + SelectedVideoStreams *SelectedVideoStreams + + noSmithyDocumentSerde +} + // The streaming configuration associated with an Amazon Chime Voice Connector. // Specifies whether media streaming is enabled for sending to Amazon Kinesis, and // shows the retention period for the Amazon Kinesis data, in hours. @@ -1636,6 +1722,20 @@ type UserSettings struct { noSmithyDocumentSerde } +// The video artifact configuration object. +type VideoArtifactsConfiguration struct { + + // Indicates whether the video artifact is enabled or disabled. + // + // This member is required. + State ArtifactsState + + // The MUX type of the video artifact configuration object. + MuxType VideoMuxType + + noSmithyDocumentSerde +} + // The Amazon Chime Voice Connector configuration, including outbound host name and // encryption settings. type VoiceConnector struct { diff --git a/service/chime/validators.go b/service/chime/validators.go index 41441db7162..aac0ed1323a 100644 --- a/service/chime/validators.go +++ b/service/chime/validators.go @@ -3230,26 +3230,6 @@ func (m *validateOpUpdateChannelReadMarker) HandleInitialize(ctx context.Context return next.HandleInitialize(ctx, in) } -type validateOpUpdateGlobalSettings struct { -} - -func (*validateOpUpdateGlobalSettings) ID() string { - return "OperationInputValidation" -} - -func (m *validateOpUpdateGlobalSettings) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( - out middleware.InitializeOutput, metadata middleware.Metadata, err error, -) { - input, ok := in.Parameters.(*UpdateGlobalSettingsInput) - if !ok { - return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) - } - if err := validateOpUpdateGlobalSettingsInput(input); err != nil { - return out, metadata, err - } - return next.HandleInitialize(ctx, in) -} - type validateOpUpdatePhoneNumber struct { } @@ -4134,10 +4114,6 @@ func addOpUpdateChannelReadMarkerValidationMiddleware(stack *middleware.Stack) e return stack.Initialize.Add(&validateOpUpdateChannelReadMarker{}, middleware.After) } -func addOpUpdateGlobalSettingsValidationMiddleware(stack *middleware.Stack) error { - return stack.Initialize.Add(&validateOpUpdateGlobalSettings{}, middleware.After) -} - func addOpUpdatePhoneNumberValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdatePhoneNumber{}, middleware.After) } @@ -4221,6 +4197,39 @@ func validateAppInstanceStreamingConfigurationList(v []types.AppInstanceStreamin } } +func validateArtifactsConfiguration(v *types.ArtifactsConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ArtifactsConfiguration"} + if v.Audio == nil { + invalidParams.Add(smithy.NewErrParamRequired("Audio")) + } else if v.Audio != nil { + if err := validateAudioArtifactsConfiguration(v.Audio); err != nil { + invalidParams.AddNested("Audio", err.(smithy.InvalidParamsError)) + } + } + if v.Video == nil { + invalidParams.Add(smithy.NewErrParamRequired("Video")) + } else if v.Video != nil { + if err := validateVideoArtifactsConfiguration(v.Video); err != nil { + invalidParams.AddNested("Video", err.(smithy.InvalidParamsError)) + } + } + if v.Content == nil { + invalidParams.Add(smithy.NewErrParamRequired("Content")) + } else if v.Content != nil { + if err := validateContentArtifactsConfiguration(v.Content); err != nil { + invalidParams.AddNested("Content", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateAttendeeTagList(v []types.Tag) error { if v == nil { return nil @@ -4238,6 +4247,53 @@ func validateAttendeeTagList(v []types.Tag) error { } } +func validateAudioArtifactsConfiguration(v *types.AudioArtifactsConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "AudioArtifactsConfiguration"} + if len(v.MuxType) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("MuxType")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateChimeSdkMeetingConfiguration(v *types.ChimeSdkMeetingConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ChimeSdkMeetingConfiguration"} + if v.ArtifactsConfiguration != nil { + if err := validateArtifactsConfiguration(v.ArtifactsConfiguration); err != nil { + invalidParams.AddNested("ArtifactsConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateContentArtifactsConfiguration(v *types.ContentArtifactsConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ContentArtifactsConfiguration"} + if len(v.State) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("State")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateCreateAttendeeRequestItem(v *types.CreateAttendeeRequestItem) error { if v == nil { return nil @@ -4628,6 +4684,21 @@ func validateUserSettings(v *types.UserSettings) error { } } +func validateVideoArtifactsConfiguration(v *types.VideoArtifactsConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "VideoArtifactsConfiguration"} + if len(v.State) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("State")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateVoiceConnectorItem(v *types.VoiceConnectorItem) error { if v == nil { return nil @@ -5117,6 +5188,11 @@ func validateOpCreateMediaCapturePipelineInput(v *CreateMediaCapturePipelineInpu if v.SinkArn == nil { invalidParams.Add(smithy.NewErrParamRequired("SinkArn")) } + if v.ChimeSdkMeetingConfiguration != nil { + if err := validateChimeSdkMeetingConfiguration(v.ChimeSdkMeetingConfiguration); err != nil { + invalidParams.AddNested("ChimeSdkMeetingConfiguration", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -7514,24 +7590,6 @@ func validateOpUpdateChannelReadMarkerInput(v *UpdateChannelReadMarkerInput) err } } -func validateOpUpdateGlobalSettingsInput(v *UpdateGlobalSettingsInput) error { - if v == nil { - return nil - } - invalidParams := smithy.InvalidParamsError{Context: "UpdateGlobalSettingsInput"} - if v.BusinessCalling == nil { - invalidParams.Add(smithy.NewErrParamRequired("BusinessCalling")) - } - if v.VoiceConnector == nil { - invalidParams.Add(smithy.NewErrParamRequired("VoiceConnector")) - } - if invalidParams.Len() > 0 { - return invalidParams - } else { - return nil - } -} - func validateOpUpdatePhoneNumberInput(v *UpdatePhoneNumberInput) error { if v == nil { return nil diff --git a/service/codebuild/api_op_ListBuildsForProject.go b/service/codebuild/api_op_ListBuildsForProject.go index 2dfe79b204b..0b54a75f07c 100644 --- a/service/codebuild/api_op_ListBuildsForProject.go +++ b/service/codebuild/api_op_ListBuildsForProject.go @@ -44,17 +44,18 @@ type ListBuildsForProjectInput struct { // tokens are returned. NextToken *string - // The order to list results in. The results are sorted by build number, not the - // build identifier. Valid values include: + // The order to sort the results in. The results are sorted by build number, not + // the build identifier. If this is not specified, the results are sorted in + // descending order. Valid values include: // - // * ASCENDING: List the build IDs in - // ascending order by build ID. + // * ASCENDING: List the build identifiers + // in ascending order, by build number. // - // * DESCENDING: List the build IDs in descending - // order by build ID. + // * DESCENDING: List the build identifiers + // in descending order, by build number. // - // If the project has more than 100 builds, setting the sort - // order will result in an error. + // If the project has more than 100 builds, + // setting the sort order will result in an error. SortOrder types.SortOrderType noSmithyDocumentSerde @@ -62,7 +63,7 @@ type ListBuildsForProjectInput struct { type ListBuildsForProjectOutput struct { - // A list of build IDs for the specified build project, with each build ID + // A list of build identifiers for the specified build project, with each build ID // representing a single build. Ids []string diff --git a/service/codebuild/api_op_UpdateProject.go b/service/codebuild/api_op_UpdateProject.go index bfa344cb88f..c7048d676b4 100644 --- a/service/codebuild/api_op_UpdateProject.go +++ b/service/codebuild/api_op_UpdateProject.go @@ -81,7 +81,7 @@ type UpdateProjectInput struct { // The number of minutes a build is allowed to be queued before it times out. QueuedTimeoutInMinutes *int32 - // An array of ProjectSource objects. + // An array of ProjectArtifact objects. SecondaryArtifacts []types.ProjectArtifacts // An array of ProjectSourceVersion objects. If secondarySourceVersions is diff --git a/service/codebuild/deserializers.go b/service/codebuild/deserializers.go index 9aa25c2e383..54c62400d6a 100644 --- a/service/codebuild/deserializers.go +++ b/service/codebuild/deserializers.go @@ -8828,6 +8828,15 @@ func awsAwsjson11_deserializeDocumentProjectBuildBatchConfig(v **types.ProjectBu for key, value := range shape { switch key { + case "batchReportMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BatchReportModeType to be of type string, got %T instead", value) + } + sv.BatchReportMode = types.BatchReportModeType(jtv) + } + case "combineArtifacts": if value != nil { jtv, ok := value.(bool) diff --git a/service/codebuild/serializers.go b/service/codebuild/serializers.go index 3fec2c88fd2..99f5ceb27fe 100644 --- a/service/codebuild/serializers.go +++ b/service/codebuild/serializers.go @@ -2403,6 +2403,11 @@ func awsAwsjson11_serializeDocumentProjectBuildBatchConfig(v *types.ProjectBuild object := value.Object() defer object.Close() + if len(v.BatchReportMode) > 0 { + ok := object.Key("batchReportMode") + ok.String(string(v.BatchReportMode)) + } + if v.CombineArtifacts != nil { ok := object.Key("combineArtifacts") ok.Boolean(*v.CombineArtifacts) diff --git a/service/codebuild/types/enums.go b/service/codebuild/types/enums.go index c73cb32aeba..405797f3f29 100644 --- a/service/codebuild/types/enums.go +++ b/service/codebuild/types/enums.go @@ -78,6 +78,24 @@ func (AuthType) Values() []AuthType { } } +type BatchReportModeType string + +// Enum values for BatchReportModeType +const ( + BatchReportModeTypeReportIndividualBuilds BatchReportModeType = "REPORT_INDIVIDUAL_BUILDS" + BatchReportModeTypeReportAggregatedBatch BatchReportModeType = "REPORT_AGGREGATED_BATCH" +) + +// Values returns all known values for BatchReportModeType. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (BatchReportModeType) Values() []BatchReportModeType { + return []BatchReportModeType{ + "REPORT_INDIVIDUAL_BUILDS", + "REPORT_AGGREGATED_BATCH", + } +} + type BucketOwnerAccess string // Enum values for BucketOwnerAccess diff --git a/service/codebuild/types/types.go b/service/codebuild/types/types.go index 0ada14bc016..25b699843aa 100644 --- a/service/codebuild/types/types.go +++ b/service/codebuild/types/types.go @@ -1208,6 +1208,15 @@ type ProjectBadge struct { // Contains configuration information about a batch build project. type ProjectBuildBatchConfig struct { + // Specifies how build status reports are sent to the source provider for the batch + // build. This property is only used when the source provider for your project is + // Bitbucket, GitHub, or GitHub Enterprise, and your project is configured to + // report build statuses to the source provider. REPORT_AGGREGATED_BATCH (Default) + // Aggregate all of the build statuses into a single status report. + // REPORT_INDIVIDUAL_BUILDS Send a separate status report for each individual + // build. + BatchReportMode BatchReportModeType + // Specifies if the build artifacts for the batch build should be combined into a // single artifact location. CombineArtifacts *bool diff --git a/service/databrew/internal/endpoints/endpoints.go b/service/databrew/internal/endpoints/endpoints.go index c5e04d5b426..e3b07f84bef 100644 --- a/service/databrew/internal/endpoints/endpoints.go +++ b/service/databrew/internal/endpoints/endpoints.go @@ -62,6 +62,27 @@ var defaultPartitions = endpoints.Partitions{ }, RegionRegex: partitionRegexp.Aws, IsRegionalized: true, + Endpoints: endpoints.Endpoints{ + "af-south-1": endpoints.Endpoint{}, + "ap-east-1": endpoints.Endpoint{}, + "ap-northeast-1": endpoints.Endpoint{}, + "ap-northeast-2": endpoints.Endpoint{}, + "ap-south-1": endpoints.Endpoint{}, + "ap-southeast-1": endpoints.Endpoint{}, + "ap-southeast-2": endpoints.Endpoint{}, + "ca-central-1": endpoints.Endpoint{}, + "eu-central-1": endpoints.Endpoint{}, + "eu-north-1": endpoints.Endpoint{}, + "eu-south-1": endpoints.Endpoint{}, + "eu-west-1": endpoints.Endpoint{}, + "eu-west-2": endpoints.Endpoint{}, + "eu-west-3": endpoints.Endpoint{}, + "sa-east-1": endpoints.Endpoint{}, + "us-east-1": endpoints.Endpoint{}, + "us-east-2": endpoints.Endpoint{}, + "us-west-1": endpoints.Endpoint{}, + "us-west-2": endpoints.Endpoint{}, + }, }, { ID: "aws-cn", @@ -72,6 +93,10 @@ var defaultPartitions = endpoints.Partitions{ }, RegionRegex: partitionRegexp.AwsCn, IsRegionalized: true, + Endpoints: endpoints.Endpoints{ + "cn-north-1": endpoints.Endpoint{}, + "cn-northwest-1": endpoints.Endpoint{}, + }, }, { ID: "aws-iso", @@ -102,5 +127,8 @@ var defaultPartitions = endpoints.Partitions{ }, RegionRegex: partitionRegexp.AwsUsGov, IsRegionalized: true, + Endpoints: endpoints.Endpoints{ + "us-gov-west-1": endpoints.Endpoint{}, + }, }, } diff --git a/service/ec2/api_op_AllocateAddress.go b/service/ec2/api_op_AllocateAddress.go index f973238b9ec..1a260695ff0 100644 --- a/service/ec2/api_op_AllocateAddress.go +++ b/service/ec2/api_op_AllocateAddress.go @@ -73,14 +73,13 @@ type AllocateAddressInput struct { DryRun *bool // A unique set of Availability Zones, Local Zones, or Wavelength Zones from which - // AWS advertises IP addresses. Use this parameter to limit the IP address to this - // location. IP addresses cannot move between network border groups. Use - // DescribeAvailabilityZones + // Amazon Web Services advertises IP addresses. Use this parameter to limit the IP + // address to this location. IP addresses cannot move between network border + // groups. Use DescribeAvailabilityZones // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html) // to view the network border groups. You cannot use a network border group with - // EC2 Classic. If you attempt this operation on EC2 classic, you will receive an - // InvalidParameterCombination error. For more information, see Error Codes - // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html). + // EC2 Classic. If you attempt this operation on EC2 Classic, you receive an + // InvalidParameterCombination error. NetworkBorderGroup *string // The ID of an address pool that you own. Use this parameter to let Amazon EC2 @@ -114,8 +113,8 @@ type AllocateAddressOutput struct { // (vpc) or instances in EC2-Classic (standard). Domain types.DomainType - // The set of Availability Zones, Local Zones, or Wavelength Zones from which AWS - // advertises IP addresses. + // The set of Availability Zones, Local Zones, or Wavelength Zones from which + // Amazon Web Services advertises IP addresses. NetworkBorderGroup *string // The Elastic IP address. diff --git a/service/ec2/api_op_CancelCapacityReservationFleets.go b/service/ec2/api_op_CancelCapacityReservationFleets.go new file mode 100644 index 00000000000..7eb3a98b3d9 --- /dev/null +++ b/service/ec2/api_op_CancelCapacityReservationFleets.go @@ -0,0 +1,142 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package ec2 + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/ec2/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Cancels one or more Capacity Reservation Fleets. When you cancel a Capacity +// Reservation Fleet, the following happens: +// +// * The Capacity Reservation Fleet's +// status changes to cancelled. +// +// * The individual Capacity Reservations in the +// Fleet are cancelled. Instances running in the Capacity Reservations at the time +// of cancelling the Fleet continue to run in shared capacity. +// +// * The Fleet stops +// creating new Capacity Reservations. +func (c *Client) CancelCapacityReservationFleets(ctx context.Context, params *CancelCapacityReservationFleetsInput, optFns ...func(*Options)) (*CancelCapacityReservationFleetsOutput, error) { + if params == nil { + params = &CancelCapacityReservationFleetsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CancelCapacityReservationFleets", params, optFns, c.addOperationCancelCapacityReservationFleetsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CancelCapacityReservationFleetsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CancelCapacityReservationFleetsInput struct { + + // The IDs of the Capacity Reservation Fleets to cancel. + // + // This member is required. + CapacityReservationFleetIds []string + + // Checks whether you have the required permissions for the action, without + // actually making the request, and provides an error response. If you have the + // required permissions, the error response is DryRunOperation. Otherwise, it is + // UnauthorizedOperation. + DryRun *bool + + noSmithyDocumentSerde +} + +type CancelCapacityReservationFleetsOutput struct { + + // Information about the Capacity Reservation Fleets that could not be cancelled. + FailedFleetCancellations []types.FailedCapacityReservationFleetCancellationResult + + // Information about the Capacity Reservation Fleets that were successfully + // cancelled. + SuccessfulFleetCancellations []types.CapacityReservationFleetCancellationState + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCancelCapacityReservationFleetsMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsEc2query_serializeOpCancelCapacityReservationFleets{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsEc2query_deserializeOpCancelCapacityReservationFleets{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpCancelCapacityReservationFleetsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCancelCapacityReservationFleets(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opCancelCapacityReservationFleets(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "ec2", + OperationName: "CancelCapacityReservationFleets", + } +} diff --git a/service/ec2/api_op_CopyFpgaImage.go b/service/ec2/api_op_CopyFpgaImage.go index ee4c7fb33ef..43c71eeebd2 100644 --- a/service/ec2/api_op_CopyFpgaImage.go +++ b/service/ec2/api_op_CopyFpgaImage.go @@ -39,7 +39,7 @@ type CopyFpgaImageInput struct { SourceRegion *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. For more information, see Ensuring Idempotency + // the request. For more information, see Ensuring idempotency // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html). ClientToken *string diff --git a/service/ec2/api_op_CreateCapacityReservationFleet.go b/service/ec2/api_op_CreateCapacityReservationFleet.go new file mode 100644 index 00000000000..57402356814 --- /dev/null +++ b/service/ec2/api_op_CreateCapacityReservationFleet.go @@ -0,0 +1,257 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package ec2 + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/ec2/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "time" +) + +// Creates a Capacity Reservation Fleet. For more information, see Create a +// Capacity Reservation Fleet +// (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-cr-fleets.html#create-crfleet) +// in the Amazon EC2 User Guide. +func (c *Client) CreateCapacityReservationFleet(ctx context.Context, params *CreateCapacityReservationFleetInput, optFns ...func(*Options)) (*CreateCapacityReservationFleetOutput, error) { + if params == nil { + params = &CreateCapacityReservationFleetInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateCapacityReservationFleet", params, optFns, c.addOperationCreateCapacityReservationFleetMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateCapacityReservationFleetOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateCapacityReservationFleetInput struct { + + // Information about the instance types for which to reserve the capacity. + // + // This member is required. + InstanceTypeSpecifications []types.ReservationFleetInstanceSpecification + + // The total number of capacity units to be reserved by the Capacity Reservation + // Fleet. This value, together with the instance type weights that you assign to + // each instance type used by the Fleet determine the number of instances for which + // the Fleet reserves capacity. Both values are based on units that make sense for + // your workload. For more information, see Total target capacity + // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#target-capacity) + // in the Amazon EC2 User Guide. + // + // This member is required. + TotalTargetCapacity *int32 + + // The strategy used by the Capacity Reservation Fleet to determine which of the + // specified instance types to use. Currently, only the prioritized allocation + // strategy is supported. For more information, see Allocation strategy + // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#allocation-strategy) + // in the Amazon EC2 User Guide. Valid values: prioritized + AllocationStrategy *string + + // Unique, case-sensitive identifier that you provide to ensure the idempotency of + // the request. For more information, see Ensure Idempotency + // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + ClientToken *string + + // Checks whether you have the required permissions for the action, without + // actually making the request, and provides an error response. If you have the + // required permissions, the error response is DryRunOperation. Otherwise, it is + // UnauthorizedOperation. + DryRun *bool + + // The date and time at which the Capacity Reservation Fleet expires. When the + // Capacity Reservation Fleet expires, its state changes to expired and all of the + // Capacity Reservations in the Fleet expire. The Capacity Reservation Fleet + // expires within an hour after the specified time. For example, if you specify + // 5/31/2019, 13:30:55, the Capacity Reservation Fleet is guaranteed to expire + // between 13:30:55 and 14:30:55 on 5/31/2019. + EndDate *time.Time + + // Indicates the type of instance launches that the Capacity Reservation Fleet + // accepts. All Capacity Reservations in the Fleet inherit this instance matching + // criteria. Currently, Capacity Reservation Fleets support open instance matching + // criteria only. This means that instances that have matching attributes (instance + // type, platform, and Availability Zone) run in the Capacity Reservations + // automatically. Instances do not need to explicitly target a Capacity Reservation + // Fleet to use its reserved capacity. + InstanceMatchCriteria types.FleetInstanceMatchCriteria + + // The tags to assign to the Capacity Reservation Fleet. The tags are automatically + // assigned to the Capacity Reservations in the Fleet. + TagSpecifications []types.TagSpecification + + // Indicates the tenancy of the Capacity Reservation Fleet. All Capacity + // Reservations in the Fleet inherit this tenancy. The Capacity Reservation Fleet + // can have one of the following tenancy settings: + // + // * default - The Capacity + // Reservation Fleet is created on hardware that is shared with other Amazon Web + // Services accounts. + // + // * dedicated - The Capacity Reservations are created on + // single-tenant hardware that is dedicated to a single Amazon Web Services + // account. + Tenancy types.FleetCapacityReservationTenancy + + noSmithyDocumentSerde +} + +type CreateCapacityReservationFleetOutput struct { + + // The allocation strategy used by the Capacity Reservation Fleet. + AllocationStrategy *string + + // The ID of the Capacity Reservation Fleet. + CapacityReservationFleetId *string + + // The date and time at which the Capacity Reservation Fleet was created. + CreateTime *time.Time + + // The date and time at which the Capacity Reservation Fleet expires. + EndDate *time.Time + + // Information about the individual Capacity Reservations in the Capacity + // Reservation Fleet. + FleetCapacityReservations []types.FleetCapacityReservation + + // The instance matching criteria for the Capacity Reservation Fleet. + InstanceMatchCriteria types.FleetInstanceMatchCriteria + + // The status of the Capacity Reservation Fleet. + State types.CapacityReservationFleetState + + // The tags assigned to the Capacity Reservation Fleet. + Tags []types.Tag + + // Indicates the tenancy of Capacity Reservation Fleet. + Tenancy types.FleetCapacityReservationTenancy + + // The requested capacity units that have been successfully reserved. + TotalFulfilledCapacity *float64 + + // The total number of capacity units for which the Capacity Reservation Fleet + // reserves capacity. + TotalTargetCapacity *int32 + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateCapacityReservationFleetMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsEc2query_serializeOpCreateCapacityReservationFleet{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsEc2query_deserializeOpCreateCapacityReservationFleet{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addIdempotencyToken_opCreateCapacityReservationFleetMiddleware(stack, options); err != nil { + return err + } + if err = addOpCreateCapacityReservationFleetValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateCapacityReservationFleet(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +type idempotencyToken_initializeOpCreateCapacityReservationFleet struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpCreateCapacityReservationFleet) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpCreateCapacityReservationFleet) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + if m.tokenProvider == nil { + return next.HandleInitialize(ctx, in) + } + + input, ok := in.Parameters.(*CreateCapacityReservationFleetInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *CreateCapacityReservationFleetInput ") + } + + if input.ClientToken == nil { + t, err := m.tokenProvider.GetIdempotencyToken() + if err != nil { + return out, metadata, err + } + input.ClientToken = &t + } + return next.HandleInitialize(ctx, in) +} +func addIdempotencyToken_opCreateCapacityReservationFleetMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpCreateCapacityReservationFleet{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opCreateCapacityReservationFleet(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "ec2", + OperationName: "CreateCapacityReservationFleet", + } +} diff --git a/service/ec2/api_op_CreateFlowLogs.go b/service/ec2/api_op_CreateFlowLogs.go index b564c2eb573..3751d67d731 100644 --- a/service/ec2/api_op_CreateFlowLogs.go +++ b/service/ec2/api_op_CreateFlowLogs.go @@ -104,8 +104,8 @@ type CreateFlowLogsInput struct { // (https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-log-records). // If you omit this parameter, the flow log is created using the default format. If // you specify this parameter, you must specify at least one field. Specify the - // fields using the ${field-id} format, separated by spaces. For the CLI, use - // single quotation marks (' ') to surround the parameter value. + // fields using the ${field-id} format, separated by spaces. For the CLI, surround + // this parameter value with single quotes on Linux or double quotes on Windows. LogFormat *string // The name of a new or existing CloudWatch Logs log group where Amazon EC2 diff --git a/service/ec2/api_op_CreateFpgaImage.go b/service/ec2/api_op_CreateFpgaImage.go index df43bc5920f..4e30e638479 100644 --- a/service/ec2/api_op_CreateFpgaImage.go +++ b/service/ec2/api_op_CreateFpgaImage.go @@ -15,8 +15,8 @@ import ( // The create operation is asynchronous. To verify that the AFI is ready for use, // check the output logs. An AFI contains the FPGA bitstream that is ready to // download to an FPGA. You can securely deploy an AFI on multiple FPGA-accelerated -// instances. For more information, see the AWS FPGA Hardware Development Kit -// (https://github.com/aws/aws-fpga/). +// instances. For more information, see the Amazon Web Services FPGA Hardware +// Development Kit (https://github.com/aws/aws-fpga/). func (c *Client) CreateFpgaImage(ctx context.Context, params *CreateFpgaImageInput, optFns ...func(*Options)) (*CreateFpgaImageOutput, error) { if params == nil { params = &CreateFpgaImageInput{} diff --git a/service/ec2/api_op_CreateLaunchTemplate.go b/service/ec2/api_op_CreateLaunchTemplate.go index e04336dcaa2..a79f3a27811 100644 --- a/service/ec2/api_op_CreateLaunchTemplate.go +++ b/service/ec2/api_op_CreateLaunchTemplate.go @@ -15,8 +15,8 @@ import ( // an instance. When you launch an instance using RunInstances, you can specify a // launch template instead of providing the launch parameters in the request. For // more information, see Launching an instance from a launch template -// (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html)in -// the Amazon Elastic Compute Cloud User Guide. +// (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) +// in the Amazon Elastic Compute Cloud User Guide. func (c *Client) CreateLaunchTemplate(ctx context.Context, params *CreateLaunchTemplateInput, optFns ...func(*Options)) (*CreateLaunchTemplateOutput, error) { if params == nil { params = &CreateLaunchTemplateInput{} diff --git a/service/ec2/api_op_CreateTrafficMirrorFilter.go b/service/ec2/api_op_CreateTrafficMirrorFilter.go index 057537c76ad..0fe9a05359e 100644 --- a/service/ec2/api_op_CreateTrafficMirrorFilter.go +++ b/service/ec2/api_op_CreateTrafficMirrorFilter.go @@ -38,7 +38,7 @@ func (c *Client) CreateTrafficMirrorFilter(ctx context.Context, params *CreateTr type CreateTrafficMirrorFilterInput struct { // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. For more information, see How to Ensure Idempotency + // the request. For more information, see How to ensure idempotency // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). ClientToken *string @@ -60,7 +60,7 @@ type CreateTrafficMirrorFilterInput struct { type CreateTrafficMirrorFilterOutput struct { // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. For more information, see How to Ensure Idempotency + // the request. For more information, see How to ensure idempotency // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). ClientToken *string diff --git a/service/ec2/api_op_CreateTrafficMirrorFilterRule.go b/service/ec2/api_op_CreateTrafficMirrorFilterRule.go index 7865348cc4a..c27e8491bbd 100644 --- a/service/ec2/api_op_CreateTrafficMirrorFilterRule.go +++ b/service/ec2/api_op_CreateTrafficMirrorFilterRule.go @@ -37,7 +37,7 @@ type CreateTrafficMirrorFilterRuleInput struct { // This member is required. DestinationCidrBlock *string - // The action to take (accept | reject) on the filtered traffic. + // The action to take on the filtered traffic. // // This member is required. RuleAction types.TrafficMirrorRuleAction @@ -54,7 +54,7 @@ type CreateTrafficMirrorFilterRuleInput struct { // This member is required. SourceCidrBlock *string - // The type of traffic (ingress | egress). + // The type of traffic. // // This member is required. TrafficDirection types.TrafficDirection @@ -65,7 +65,7 @@ type CreateTrafficMirrorFilterRuleInput struct { TrafficMirrorFilterId *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. For more information, see How to Ensure Idempotency + // the request. For more information, see How to ensure idempotency // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). ClientToken *string @@ -96,7 +96,7 @@ type CreateTrafficMirrorFilterRuleInput struct { type CreateTrafficMirrorFilterRuleOutput struct { // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. For more information, see How to Ensure Idempotency + // the request. For more information, see How to ensure idempotency // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). ClientToken *string diff --git a/service/ec2/api_op_CreateTrafficMirrorSession.go b/service/ec2/api_op_CreateTrafficMirrorSession.go index 0d5fe6a0a36..a3f57b98840 100644 --- a/service/ec2/api_op_CreateTrafficMirrorSession.go +++ b/service/ec2/api_op_CreateTrafficMirrorSession.go @@ -61,7 +61,7 @@ type CreateTrafficMirrorSessionInput struct { TrafficMirrorTargetId *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. For more information, see How to Ensure Idempotency + // the request. For more information, see How to ensure idempotency // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). ClientToken *string @@ -97,7 +97,7 @@ type CreateTrafficMirrorSessionInput struct { type CreateTrafficMirrorSessionOutput struct { // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. For more information, see How to Ensure Idempotency + // the request. For more information, see How to ensure idempotency // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). ClientToken *string diff --git a/service/ec2/api_op_CreateTrafficMirrorTarget.go b/service/ec2/api_op_CreateTrafficMirrorTarget.go index 8ac0888c3e5..5abbbadf390 100644 --- a/service/ec2/api_op_CreateTrafficMirrorTarget.go +++ b/service/ec2/api_op_CreateTrafficMirrorTarget.go @@ -37,7 +37,7 @@ func (c *Client) CreateTrafficMirrorTarget(ctx context.Context, params *CreateTr type CreateTrafficMirrorTargetInput struct { // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. For more information, see How to Ensure Idempotency + // the request. For more information, see How to ensure idempotency // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). ClientToken *string @@ -66,7 +66,7 @@ type CreateTrafficMirrorTargetInput struct { type CreateTrafficMirrorTargetOutput struct { // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. For more information, see How to Ensure Idempotency + // the request. For more information, see How to ensure idempotency // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). ClientToken *string diff --git a/service/ec2/api_op_CreateVpcEndpoint.go b/service/ec2/api_op_CreateVpcEndpoint.go index 42dfa5ec08c..b27d72869b0 100644 --- a/service/ec2/api_op_CreateVpcEndpoint.go +++ b/service/ec2/api_op_CreateVpcEndpoint.go @@ -13,12 +13,12 @@ import ( // Creates a VPC endpoint for a specified service. An endpoint enables you to // create a private connection between your VPC and the service. The service may be -// provided by AWS, an AWS Marketplace Partner, or another AWS account. For more -// information, see VPC Endpoints +// provided by Amazon Web Services, an Amazon Web Services Marketplace Partner, or +// another Amazon Web Services account. For more information, see VPC Endpoints // (https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) in the // Amazon Virtual Private Cloud User Guide. A gateway endpoint serves as a target -// for a route in your route table for traffic destined for the AWS service. You -// can specify an endpoint policy to attach to the endpoint, which will control +// for a route in your route table for traffic destined for the Amazon Web Service. +// You can specify an endpoint policy to attach to the endpoint, which will control // access to the service from your VPC. You can also specify the VPC route tables // that use the endpoint. An interface endpoint is a network interface in your // subnet that serves as an endpoint for communicating with the specified service. @@ -58,7 +58,7 @@ type CreateVpcEndpointInput struct { VpcId *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. For more information, see How to Ensure Idempotency + // the request. For more information, see How to ensure idempotency // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). ClientToken *string diff --git a/service/ec2/api_op_CreateVpcEndpointConnectionNotification.go b/service/ec2/api_op_CreateVpcEndpointConnectionNotification.go index 326ff67eab3..2573f1e99ab 100644 --- a/service/ec2/api_op_CreateVpcEndpointConnectionNotification.go +++ b/service/ec2/api_op_CreateVpcEndpointConnectionNotification.go @@ -46,7 +46,7 @@ type CreateVpcEndpointConnectionNotificationInput struct { ConnectionNotificationArn *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. For more information, see How to Ensure Idempotency + // the request. For more information, see How to ensure idempotency // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). ClientToken *string diff --git a/service/ec2/api_op_CreateVpcEndpointServiceConfiguration.go b/service/ec2/api_op_CreateVpcEndpointServiceConfiguration.go index 315f3aabd9f..5cef6b15f1e 100644 --- a/service/ec2/api_op_CreateVpcEndpointServiceConfiguration.go +++ b/service/ec2/api_op_CreateVpcEndpointServiceConfiguration.go @@ -11,12 +11,12 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a VPC endpoint service configuration to which service consumers (AWS -// accounts, IAM users, and IAM roles) can connect. To create an endpoint service -// configuration, you must first create one of the following for your service: +// Creates a VPC endpoint service configuration to which service consumers (Amazon +// Web Services accounts, IAM users, and IAM roles) can connect. To create an +// endpoint service configuration, you must first create one of the following for +// your service: // -// * A -// Network Load Balancer +// * A Network Load Balancer // (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html). // Service consumers connect to your service using an interface endpoint. // @@ -55,7 +55,7 @@ type CreateVpcEndpointServiceConfigurationInput struct { AcceptanceRequired *bool // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. For more information, see How to Ensure Idempotency + // the request. For more information, see How to ensure idempotency // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html). ClientToken *string diff --git a/service/ec2/api_op_DescribeAvailabilityZones.go b/service/ec2/api_op_DescribeAvailabilityZones.go index e06a8df4798..37a96420ac4 100644 --- a/service/ec2/api_op_DescribeAvailabilityZones.go +++ b/service/ec2/api_op_DescribeAvailabilityZones.go @@ -15,7 +15,7 @@ import ( // available to you. If there is an event impacting a zone, you can use this // request to view the state and any provided messages for that zone. For more // information about Availability Zones, Local Zones, and Wavelength Zones, see -// Regions, Zones and Outposts +// Regions and zones // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html) // in the Amazon Elastic Compute Cloud User Guide. func (c *Client) DescribeAvailabilityZones(ctx context.Context, params *DescribeAvailabilityZonesInput, optFns ...func(*Options)) (*DescribeAvailabilityZonesOutput, error) { diff --git a/service/ec2/api_op_DescribeCapacityReservationFleets.go b/service/ec2/api_op_DescribeCapacityReservationFleets.go new file mode 100644 index 00000000000..3d7d8a2be5c --- /dev/null +++ b/service/ec2/api_op_DescribeCapacityReservationFleets.go @@ -0,0 +1,244 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package ec2 + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/ec2/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Describes one or more Capacity Reservation Fleets. +func (c *Client) DescribeCapacityReservationFleets(ctx context.Context, params *DescribeCapacityReservationFleetsInput, optFns ...func(*Options)) (*DescribeCapacityReservationFleetsOutput, error) { + if params == nil { + params = &DescribeCapacityReservationFleetsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeCapacityReservationFleets", params, optFns, c.addOperationDescribeCapacityReservationFleetsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeCapacityReservationFleetsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeCapacityReservationFleetsInput struct { + + // The IDs of the Capacity Reservation Fleets to describe. + CapacityReservationFleetIds []string + + // Checks whether you have the required permissions for the action, without + // actually making the request, and provides an error response. If you have the + // required permissions, the error response is DryRunOperation. Otherwise, it is + // UnauthorizedOperation. + DryRun *bool + + // One or more filters. + // + // * state - The state of the Fleet (submitted | modifying | + // active | partially_fulfilled | expiring | expired | cancelling | cancelled | + // failed). + // + // * instance-match-criteria - The instance matching criteria for the + // Fleet. Only open is supported. + // + // * tenancy - The tenancy of the Fleet (default | + // dedicated). + // + // * allocation-strategy - The allocation strategy used by the Fleet. + // Only prioritized is supported. + Filters []types.Filter + + // The maximum number of results to return for the request in a single page. The + // remaining results can be seen by sending another request with the returned + // nextToken value. This value can be between 5 and 500. If maxResults is given a + // larger value than 500, you receive an error. + MaxResults *int32 + + // The token to use to retrieve the next page of results. + NextToken *string + + noSmithyDocumentSerde +} + +type DescribeCapacityReservationFleetsOutput struct { + + // Information about the Capacity Reservation Fleets. + CapacityReservationFleets []types.CapacityReservationFleet + + // The token to use to retrieve the next page of results. This value is null when + // there are no more results to return. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeCapacityReservationFleetsMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsEc2query_serializeOpDescribeCapacityReservationFleets{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsEc2query_deserializeOpDescribeCapacityReservationFleets{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeCapacityReservationFleets(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +// DescribeCapacityReservationFleetsAPIClient is a client that implements the +// DescribeCapacityReservationFleets operation. +type DescribeCapacityReservationFleetsAPIClient interface { + DescribeCapacityReservationFleets(context.Context, *DescribeCapacityReservationFleetsInput, ...func(*Options)) (*DescribeCapacityReservationFleetsOutput, error) +} + +var _ DescribeCapacityReservationFleetsAPIClient = (*Client)(nil) + +// DescribeCapacityReservationFleetsPaginatorOptions is the paginator options for +// DescribeCapacityReservationFleets +type DescribeCapacityReservationFleetsPaginatorOptions struct { + // The maximum number of results to return for the request in a single page. The + // remaining results can be seen by sending another request with the returned + // nextToken value. This value can be between 5 and 500. If maxResults is given a + // larger value than 500, you receive an error. + Limit int32 + + // Set to true if pagination should stop if the service returns a pagination token + // that matches the most recent token provided to the service. + StopOnDuplicateToken bool +} + +// DescribeCapacityReservationFleetsPaginator is a paginator for +// DescribeCapacityReservationFleets +type DescribeCapacityReservationFleetsPaginator struct { + options DescribeCapacityReservationFleetsPaginatorOptions + client DescribeCapacityReservationFleetsAPIClient + params *DescribeCapacityReservationFleetsInput + nextToken *string + firstPage bool +} + +// NewDescribeCapacityReservationFleetsPaginator returns a new +// DescribeCapacityReservationFleetsPaginator +func NewDescribeCapacityReservationFleetsPaginator(client DescribeCapacityReservationFleetsAPIClient, params *DescribeCapacityReservationFleetsInput, optFns ...func(*DescribeCapacityReservationFleetsPaginatorOptions)) *DescribeCapacityReservationFleetsPaginator { + if params == nil { + params = &DescribeCapacityReservationFleetsInput{} + } + + options := DescribeCapacityReservationFleetsPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &DescribeCapacityReservationFleetsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *DescribeCapacityReservationFleetsPaginator) HasMorePages() bool { + return p.firstPage || p.nextToken != nil +} + +// NextPage retrieves the next DescribeCapacityReservationFleets page. +func (p *DescribeCapacityReservationFleetsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*DescribeCapacityReservationFleetsOutput, error) { + if !p.HasMorePages() { + return nil, fmt.Errorf("no more pages available") + } + + params := *p.params + params.NextToken = p.nextToken + + var limit *int32 + if p.options.Limit > 0 { + limit = &p.options.Limit + } + params.MaxResults = limit + + result, err := p.client.DescribeCapacityReservationFleets(ctx, ¶ms, optFns...) + if err != nil { + return nil, err + } + p.firstPage = false + + prevToken := p.nextToken + p.nextToken = result.NextToken + + if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken { + p.nextToken = nil + } + + return result, nil +} + +func newServiceMetadataMiddleware_opDescribeCapacityReservationFleets(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "ec2", + OperationName: "DescribeCapacityReservationFleets", + } +} diff --git a/service/ec2/api_op_DescribeFleetHistory.go b/service/ec2/api_op_DescribeFleetHistory.go index 80b147246ac..79cb3108a08 100644 --- a/service/ec2/api_op_DescribeFleetHistory.go +++ b/service/ec2/api_op_DescribeFleetHistory.go @@ -16,9 +16,9 @@ import ( // Fleet events are delayed by up to 30 seconds before they can be described. This // ensures that you can query by the last evaluated time and not miss a recorded // event. EC2 Fleet events are available for 48 hours. For more information, see -// Monitoring your EC2 Fleet -// (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet.html#monitor-ec2-fleet) -// in the Amazon EC2 User Guide. +// Monitor fleet events using Amazon EventBridge +// (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/fleet-monitor.html) in the +// Amazon EC2 User Guide. func (c *Client) DescribeFleetHistory(ctx context.Context, params *DescribeFleetHistoryInput, optFns ...func(*Options)) (*DescribeFleetHistoryOutput, error) { if params == nil { params = &DescribeFleetHistoryInput{} diff --git a/service/ec2/api_op_DescribeFpgaImages.go b/service/ec2/api_op_DescribeFpgaImages.go index 4ed6c36b54a..b49dce59215 100644 --- a/service/ec2/api_op_DescribeFpgaImages.go +++ b/service/ec2/api_op_DescribeFpgaImages.go @@ -13,8 +13,8 @@ import ( ) // Describes the Amazon FPGA Images (AFIs) available to you. These include public -// AFIs, private AFIs that you own, and AFIs owned by other AWS accounts for which -// you have load permissions. +// AFIs, private AFIs that you own, and AFIs owned by other Amazon Web Services +// accounts for which you have load permissions. func (c *Client) DescribeFpgaImages(ctx context.Context, params *DescribeFpgaImagesInput, optFns ...func(*Options)) (*DescribeFpgaImagesOutput, error) { if params == nil { params = &DescribeFpgaImagesInput{} @@ -50,29 +50,30 @@ type DescribeFpgaImagesInput struct { // // * name - The name of the AFI. // - // * owner-id - The AWS - // account ID of the AFI owner. + // * owner-id - The + // Amazon Web Services account ID of the AFI owner. // - // * product-code - The product code. + // * product-code - The product + // code. // - // * - // shell-version - The version of the AWS Shell that was used to create the - // bitstream. + // * shell-version - The version of the Amazon Web Services Shell that was + // used to create the bitstream. // - // * state - The state of the AFI (pending | failed | available | - // unavailable). + // * state - The state of the AFI (pending | failed + // | available | unavailable). // - // * tag: - The key/value combination of a tag assigned to the - // resource. Use the tag key in the filter name and the tag value as the filter - // value. For example, to find all resources that have a tag with the key Owner and - // the value TeamA, specify tag:Owner for the filter name and TeamA for the filter - // value. + // * tag: - The key/value combination of a tag + // assigned to the resource. Use the tag key in the filter name and the tag value + // as the filter value. For example, to find all resources that have a tag with the + // key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA + // for the filter value. // - // * tag-key - The key of a tag assigned to the resource. Use this filter - // to find all resources assigned a tag with a specific key, regardless of the tag - // value. + // * tag-key - The key of a tag assigned to the resource. + // Use this filter to find all resources assigned a tag with a specific key, + // regardless of the tag value. // - // * update-time - The time of the most recent update. + // * update-time - The time of the most recent + // update. Filters []types.Filter // The AFI IDs. @@ -84,9 +85,9 @@ type DescribeFpgaImagesInput struct { // The token to retrieve the next page of results. NextToken *string - // Filters the AFI by owner. Specify an AWS account ID, self (owner is the sender - // of the request), or an AWS owner alias (valid values are amazon | - // aws-marketplace). + // Filters the AFI by owner. Specify an Amazon Web Services account ID, self (owner + // is the sender of the request), or an Amazon Web Services owner alias (valid + // values are amazon | aws-marketplace). Owners []string noSmithyDocumentSerde diff --git a/service/ec2/api_op_DescribeIdFormat.go b/service/ec2/api_op_DescribeIdFormat.go index b46cb6ea711..59049fabc24 100644 --- a/service/ec2/api_op_DescribeIdFormat.go +++ b/service/ec2/api_op_DescribeIdFormat.go @@ -23,12 +23,12 @@ import ( // security-group | snapshot | subnet | subnet-cidr-block-association | volume | // vpc | vpc-cidr-block-association | vpc-endpoint | vpc-peering-connection | // vpn-connection | vpn-gateway. These settings apply to the IAM user who makes the -// request; they do not apply to the entire AWS account. By default, an IAM user -// defaults to the same settings as the root user, unless they explicitly override -// the settings by running the ModifyIdFormat command. Resources created with -// longer IDs are visible to all IAM users, regardless of these settings and -// provided that they have permission to use the relevant Describe command for the -// resource type. +// request; they do not apply to the entire Amazon Web Services account. By +// default, an IAM user defaults to the same settings as the root user, unless they +// explicitly override the settings by running the ModifyIdFormat command. +// Resources created with longer IDs are visible to all IAM users, regardless of +// these settings and provided that they have permission to use the relevant +// Describe command for the resource type. func (c *Client) DescribeIdFormat(ctx context.Context, params *DescribeIdFormatInput, optFns ...func(*Options)) (*DescribeIdFormatOutput, error) { if params == nil { params = &DescribeIdFormatInput{} diff --git a/service/ec2/api_op_DescribeRegions.go b/service/ec2/api_op_DescribeRegions.go index d33ee758f1e..908a0c2d0d9 100644 --- a/service/ec2/api_op_DescribeRegions.go +++ b/service/ec2/api_op_DescribeRegions.go @@ -12,11 +12,13 @@ import ( ) // Describes the Regions that are enabled for your account, or all Regions. For a -// list of the Regions supported by Amazon EC2, see Regions and Endpoints -// (https://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region). For +// list of the Regions supported by Amazon EC2, see Amazon Elastic Compute Cloud +// endpoints and quotas +// (https://docs.aws.amazon.com/general/latest/gr/ec2-service.html). For // information about enabling and disabling Regions for your account, see Managing -// AWS Regions (https://docs.aws.amazon.com/general/latest/gr/rande-manage.html) in -// the AWS General Reference. +// Amazon Web Services Regions +// (https://docs.aws.amazon.com/general/latest/gr/rande-manage.html) in the Amazon +// Web Services General Reference. func (c *Client) DescribeRegions(ctx context.Context, params *DescribeRegionsInput, optFns ...func(*Options)) (*DescribeRegionsOutput, error) { if params == nil { params = &DescribeRegionsInput{} diff --git a/service/ec2/api_op_DescribeSnapshots.go b/service/ec2/api_op_DescribeSnapshots.go index ed3fa4916b7..081f437953e 100644 --- a/service/ec2/api_op_DescribeSnapshots.go +++ b/service/ec2/api_op_DescribeSnapshots.go @@ -492,6 +492,30 @@ func snapshotCompletedStateRetryable(ctx context.Context, input *DescribeSnapsho } } + if err == nil { + pathValue, err := jmespath.Search("Snapshots[].State", output) + if err != nil { + return false, fmt.Errorf("error evaluating waiter state: %w", err) + } + + expectedValue := "error" + listOfValues, ok := pathValue.([]interface{}) + if !ok { + return false, fmt.Errorf("waiter comparator expected list got %T", pathValue) + } + + for _, v := range listOfValues { + value, ok := v.(types.SnapshotState) + if !ok { + return false, fmt.Errorf("waiter comparator expected types.SnapshotState value, got %T", pathValue) + } + + if string(value) == expectedValue { + return false, fmt.Errorf("waiter state transitioned to Failure") + } + } + } + return true, nil } diff --git a/service/ec2/api_op_DescribeSpotFleetRequestHistory.go b/service/ec2/api_op_DescribeSpotFleetRequestHistory.go index 4f3401b5dd9..bcc5e060daf 100644 --- a/service/ec2/api_op_DescribeSpotFleetRequestHistory.go +++ b/service/ec2/api_op_DescribeSpotFleetRequestHistory.go @@ -15,7 +15,10 @@ import ( // Describes the events for the specified Spot Fleet request during the specified // time. Spot Fleet events are delayed by up to 30 seconds before they can be // described. This ensures that you can query by the last evaluated time and not -// miss a recorded event. Spot Fleet events are available for 48 hours. +// miss a recorded event. Spot Fleet events are available for 48 hours. For more +// information, see Monitor fleet events using Amazon EventBridge +// (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/fleet-monitor.html) in the +// Amazon EC2 User Guide for Linux Instances. func (c *Client) DescribeSpotFleetRequestHistory(ctx context.Context, params *DescribeSpotFleetRequestHistoryInput, optFns ...func(*Options)) (*DescribeSpotFleetRequestHistoryOutput, error) { if params == nil { params = &DescribeSpotFleetRequestHistoryInput{} diff --git a/service/ec2/api_op_DescribeVpcEndpointConnections.go b/service/ec2/api_op_DescribeVpcEndpointConnections.go index 50153290aba..e9eb1dda3dd 100644 --- a/service/ec2/api_op_DescribeVpcEndpointConnections.go +++ b/service/ec2/api_op_DescribeVpcEndpointConnections.go @@ -42,14 +42,14 @@ type DescribeVpcEndpointConnectionsInput struct { // * service-id - The ID of the service. // // * - // vpc-endpoint-owner - The AWS account number of the owner of the endpoint. + // vpc-endpoint-owner - The ID of the Amazon Web Services account ID that owns the + // endpoint. // - // * - // vpc-endpoint-state - The state of the endpoint (pendingAcceptance | pending | - // available | deleting | deleted | rejected | failed). + // * vpc-endpoint-state - The state of the endpoint (pendingAcceptance | + // pending | available | deleting | deleted | rejected | failed). // - // * vpc-endpoint-id - The ID - // of the endpoint. + // * + // vpc-endpoint-id - The ID of the endpoint. Filters []types.Filter // The maximum number of results to return for the request in a single page. The diff --git a/service/ec2/api_op_GetVpnConnectionDeviceSampleConfiguration.go b/service/ec2/api_op_GetVpnConnectionDeviceSampleConfiguration.go index 863d6882991..a6a4ca01423 100644 --- a/service/ec2/api_op_GetVpnConnectionDeviceSampleConfiguration.go +++ b/service/ec2/api_op_GetVpnConnectionDeviceSampleConfiguration.go @@ -10,8 +10,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Download an AWS-provided sample configuration file to be used with the customer -// gateway device specified for your Site-to-Site VPN connection. +// Download an Amazon Web Services-provided sample configuration file to be used +// with the customer gateway device specified for your Site-to-Site VPN connection. func (c *Client) GetVpnConnectionDeviceSampleConfiguration(ctx context.Context, params *GetVpnConnectionDeviceSampleConfigurationInput, optFns ...func(*Options)) (*GetVpnConnectionDeviceSampleConfigurationOutput, error) { if params == nil { params = &GetVpnConnectionDeviceSampleConfigurationInput{} diff --git a/service/ec2/api_op_ImportImage.go b/service/ec2/api_op_ImportImage.go index 9f7c614f2ba..5950f308b6b 100644 --- a/service/ec2/api_op_ImportImage.go +++ b/service/ec2/api_op_ImportImage.go @@ -123,10 +123,9 @@ type ImportImageInput struct { // The tags to apply to the import image task during creation. TagSpecifications []types.TagSpecification - // The usage operation value. For more information, see AMI billing information - // fields - // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/billing-info-fields.html) - // in the Amazon Elastic Compute Cloud User Guide. + // The usage operation value. For more information, see Licensing options + // (https://docs.aws.amazon.com/vm-import/latest/userguide/vmie_prereqs.html#prerequisites) + // in the VM Import/Export User Guide. UsageOperation *string noSmithyDocumentSerde diff --git a/service/ec2/api_op_ModifyAvailabilityZoneGroup.go b/service/ec2/api_op_ModifyAvailabilityZoneGroup.go index eef51bf0c85..73141743f4a 100644 --- a/service/ec2/api_op_ModifyAvailabilityZoneGroup.go +++ b/service/ec2/api_op_ModifyAvailabilityZoneGroup.go @@ -39,9 +39,10 @@ type ModifyAvailabilityZoneGroupInput struct { GroupName *string // Indicates whether you are opted in to the Local Zone group or Wavelength Zone - // group. The only valid value is opted-in. You must contact AWS Support + // group. The only valid value is opted-in. You must contact Amazon Web Services + // Support // (https://console.aws.amazon.com/support/home#/case/create%3FissueType=customer-service%26serviceCode=general-info%26getting-started%26categoryCode=using-aws%26services) - // to opt out of a Local Zone group, or Wavelength Zone group. + // to opt out of a Local Zone or Wavelength Zone group. // // This member is required. OptInStatus types.ModifyAvailabilityZoneOptInStatus diff --git a/service/ec2/api_op_ModifyCapacityReservationFleet.go b/service/ec2/api_op_ModifyCapacityReservationFleet.go new file mode 100644 index 00000000000..df0c43767a3 --- /dev/null +++ b/service/ec2/api_op_ModifyCapacityReservationFleet.go @@ -0,0 +1,157 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package ec2 + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "time" +) + +// Modifies a Capacity Reservation Fleet. When you modify the total target capacity +// of a Capacity Reservation Fleet, the Fleet automatically creates new Capacity +// Reservations, or modifies or cancels existing Capacity Reservations in the Fleet +// to meet the new total target capacity. When you modify the end date for the +// Fleet, the end dates for all of the individual Capacity Reservations in the +// Fleet are updated accordingly. +func (c *Client) ModifyCapacityReservationFleet(ctx context.Context, params *ModifyCapacityReservationFleetInput, optFns ...func(*Options)) (*ModifyCapacityReservationFleetOutput, error) { + if params == nil { + params = &ModifyCapacityReservationFleetInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ModifyCapacityReservationFleet", params, optFns, c.addOperationModifyCapacityReservationFleetMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ModifyCapacityReservationFleetOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ModifyCapacityReservationFleetInput struct { + + // The ID of the Capacity Reservation Fleet to modify. + // + // This member is required. + CapacityReservationFleetId *string + + // Checks whether you have the required permissions for the action, without + // actually making the request, and provides an error response. If you have the + // required permissions, the error response is DryRunOperation. Otherwise, it is + // UnauthorizedOperation. + DryRun *bool + + // The date and time at which the Capacity Reservation Fleet expires. When the + // Capacity Reservation Fleet expires, its state changes to expired and all of the + // Capacity Reservations in the Fleet expire. The Capacity Reservation Fleet + // expires within an hour after the specified time. For example, if you specify + // 5/31/2019, 13:30:55, the Capacity Reservation Fleet is guaranteed to expire + // between 13:30:55 and 14:30:55 on 5/31/2019. You can't specify EndDate and + // RemoveEndDate in the same request. + EndDate *time.Time + + // Indicates whether to remove the end date from the Capacity Reservation Fleet. If + // you remove the end date, the Capacity Reservation Fleet does not expire and it + // remains active until you explicitly cancel it using the + // CancelCapacityReservationFleet action. You can't specify RemoveEndDate and + // EndDate in the same request. + RemoveEndDate *bool + + // The total number of capacity units to be reserved by the Capacity Reservation + // Fleet. This value, together with the instance type weights that you assign to + // each instance type used by the Fleet determine the number of instances for which + // the Fleet reserves capacity. Both values are based on units that make sense for + // your workload. For more information, see Total target capacity + // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#target-capacity) + // in the Amazon EC2 User Guide. + TotalTargetCapacity *int32 + + noSmithyDocumentSerde +} + +type ModifyCapacityReservationFleetOutput struct { + + // Returns true if the request succeeds; otherwise, it returns an error. + Return *bool + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationModifyCapacityReservationFleetMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsEc2query_serializeOpModifyCapacityReservationFleet{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsEc2query_deserializeOpModifyCapacityReservationFleet{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpModifyCapacityReservationFleetValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opModifyCapacityReservationFleet(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opModifyCapacityReservationFleet(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "ec2", + OperationName: "ModifyCapacityReservationFleet", + } +} diff --git a/service/ec2/api_op_ModifyFpgaImageAttribute.go b/service/ec2/api_op_ModifyFpgaImageAttribute.go index 20dd5552eb5..fd6beca0eb8 100644 --- a/service/ec2/api_op_ModifyFpgaImageAttribute.go +++ b/service/ec2/api_op_ModifyFpgaImageAttribute.go @@ -63,8 +63,8 @@ type ModifyFpgaImageAttributeInput struct { // attribute. UserGroups []string - // The AWS account IDs. This parameter is valid only when modifying the - // loadPermission attribute. + // The Amazon Web Services account IDs. This parameter is valid only when modifying + // the loadPermission attribute. UserIds []string noSmithyDocumentSerde diff --git a/service/ec2/api_op_ModifyIdFormat.go b/service/ec2/api_op_ModifyIdFormat.go index eaf0d73b852..5c226f4bbd6 100644 --- a/service/ec2/api_op_ModifyIdFormat.go +++ b/service/ec2/api_op_ModifyIdFormat.go @@ -21,11 +21,11 @@ import ( // prefix-list | route-table | route-table-association | security-group | subnet | // subnet-cidr-block-association | vpc | vpc-cidr-block-association | vpc-endpoint // | vpc-peering-connection | vpn-connection | vpn-gateway. This setting applies to -// the IAM user who makes the request; it does not apply to the entire AWS account. -// By default, an IAM user defaults to the same settings as the root user. If -// you're using this action as the root user, then these settings apply to the -// entire account, unless an IAM user explicitly overrides these settings for -// themselves. For more information, see Resource IDs +// the IAM user who makes the request; it does not apply to the entire Amazon Web +// Services account. By default, an IAM user defaults to the same settings as the +// root user. If you're using this action as the root user, then these settings +// apply to the entire account, unless an IAM user explicitly overrides these +// settings for themselves. For more information, see Resource IDs // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html) in the // Amazon Elastic Compute Cloud User Guide. Resources created with longer IDs are // visible to all IAM roles and users, regardless of these settings and provided diff --git a/service/ec2/api_op_ModifyTrafficMirrorFilterNetworkServices.go b/service/ec2/api_op_ModifyTrafficMirrorFilterNetworkServices.go index 3527fba9d78..aa8bce40ffd 100644 --- a/service/ec2/api_op_ModifyTrafficMirrorFilterNetworkServices.go +++ b/service/ec2/api_op_ModifyTrafficMirrorFilterNetworkServices.go @@ -17,9 +17,7 @@ import ( // the Traffic Mirror filter, all traffic related to that network service will be // mirrored. When you no longer want to mirror network services, use // RemoveNetworkServices to remove the network services from the Traffic Mirror -// filter. For information about filter rule properties, see Network Services -// (https://docs.aws.amazon.com/vpc/latest/mirroring/traffic-mirroring-considerations.html) -// in the Traffic Mirroring User Guide . +// filter. func (c *Client) ModifyTrafficMirrorFilterNetworkServices(ctx context.Context, params *ModifyTrafficMirrorFilterNetworkServicesInput, optFns ...func(*Options)) (*ModifyTrafficMirrorFilterNetworkServicesOutput, error) { if params == nil { params = &ModifyTrafficMirrorFilterNetworkServicesInput{} diff --git a/service/ec2/api_op_ModifyTrafficMirrorFilterRule.go b/service/ec2/api_op_ModifyTrafficMirrorFilterRule.go index 9e0c79b4859..057e0021e4c 100644 --- a/service/ec2/api_op_ModifyTrafficMirrorFilterRule.go +++ b/service/ec2/api_op_ModifyTrafficMirrorFilterRule.go @@ -72,7 +72,7 @@ type ModifyTrafficMirrorFilterRuleInput struct { // The port range to assign to the Traffic Mirror rule. SourcePortRange *types.TrafficMirrorPortRangeRequest - // The type of traffic (ingress | egress) to assign to the rule. + // The type of traffic to assign to the rule. TrafficDirection types.TrafficDirection noSmithyDocumentSerde diff --git a/service/ec2/api_op_ModifyVpcEndpointServicePermissions.go b/service/ec2/api_op_ModifyVpcEndpointServicePermissions.go index 8eacd42aff0..2b16be160d2 100644 --- a/service/ec2/api_op_ModifyVpcEndpointServicePermissions.go +++ b/service/ec2/api_op_ModifyVpcEndpointServicePermissions.go @@ -13,10 +13,11 @@ import ( // Modifies the permissions for your VPC endpoint service // (https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html). You // can add or remove permissions for service consumers (IAM users, IAM roles, and -// AWS accounts) to connect to your endpoint service. If you grant permissions to -// all principals, the service is public. Any users who know the name of a public -// service can send a request to attach an endpoint. If the service does not -// require manual approval, attachments are automatically approved. +// Amazon Web Services accounts) to connect to your endpoint service. If you grant +// permissions to all principals, the service is public. Any users who know the +// name of a public service can send a request to attach an endpoint. If the +// service does not require manual approval, attachments are automatically +// approved. func (c *Client) ModifyVpcEndpointServicePermissions(ctx context.Context, params *ModifyVpcEndpointServicePermissionsInput, optFns ...func(*Options)) (*ModifyVpcEndpointServicePermissionsOutput, error) { if params == nil { params = &ModifyVpcEndpointServicePermissionsInput{} diff --git a/service/ec2/api_op_ReleaseAddress.go b/service/ec2/api_op_ReleaseAddress.go index 4dab4c416e2..202d5858075 100644 --- a/service/ec2/api_op_ReleaseAddress.go +++ b/service/ec2/api_op_ReleaseAddress.go @@ -48,15 +48,11 @@ type ReleaseAddressInput struct { // UnauthorizedOperation. DryRun *bool - // The set of Availability Zones, Local Zones, or Wavelength Zones from which AWS - // advertises IP addresses. If you provide an incorrect network border group, you - // will receive an InvalidAddress.NotFound error. For more information, see Error - // Codes - // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html). - // You cannot use a network border group with EC2 Classic. If you attempt this - // operation on EC2 classic, you will receive an InvalidParameterCombination error. - // For more information, see Error Codes - // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html). + // The set of Availability Zones, Local Zones, or Wavelength Zones from which + // Amazon Web Services advertises IP addresses. If you provide an incorrect network + // border group, you receive an InvalidAddress.NotFound error. You cannot use a + // network border group with EC2 Classic. If you attempt this operation on EC2 + // classic, you receive an InvalidParameterCombination error. NetworkBorderGroup *string // [EC2-Classic] The Elastic IP address. Required for EC2-Classic. diff --git a/service/ec2/api_op_SearchLocalGatewayRoutes.go b/service/ec2/api_op_SearchLocalGatewayRoutes.go index 49bda156942..79fcda8f988 100644 --- a/service/ec2/api_op_SearchLocalGatewayRoutes.go +++ b/service/ec2/api_op_SearchLocalGatewayRoutes.go @@ -30,11 +30,6 @@ func (c *Client) SearchLocalGatewayRoutes(ctx context.Context, params *SearchLoc type SearchLocalGatewayRoutesInput struct { - // One or more filters. - // - // This member is required. - Filters []types.Filter - // The ID of the local gateway route table. // // This member is required. @@ -46,6 +41,9 @@ type SearchLocalGatewayRoutesInput struct { // UnauthorizedOperation. DryRun *bool + // One or more filters. + Filters []types.Filter + // The maximum number of results to return with a single call. To retrieve the // remaining results, make another call with the returned nextToken value. MaxResults *int32 diff --git a/service/ec2/deserializers.go b/service/ec2/deserializers.go index 1cc37cbe0aa..ab4ef730d82 100644 --- a/service/ec2/deserializers.go +++ b/service/ec2/deserializers.go @@ -3163,6 +3163,97 @@ func awsEc2query_deserializeOpErrorCancelCapacityReservation(response *smithyhtt } } +type awsEc2query_deserializeOpCancelCapacityReservationFleets struct { +} + +func (*awsEc2query_deserializeOpCancelCapacityReservationFleets) ID() string { + return "OperationDeserializer" +} + +func (m *awsEc2query_deserializeOpCancelCapacityReservationFleets) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsEc2query_deserializeOpErrorCancelCapacityReservationFleets(response, &metadata) + } + output := &CancelCapacityReservationFleetsOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsEc2query_deserializeOpDocumentCancelCapacityReservationFleetsOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsEc2query_deserializeOpErrorCancelCapacityReservationFleets(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + errorComponents, err := ec2query.GetErrorResponseComponents(errorBody) + if err != nil { + return err + } + awsmiddleware.SetRequestIDMetadata(metadata, errorComponents.RequestID) + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsEc2query_deserializeOpCancelConversionTask struct { } @@ -4118,6 +4209,97 @@ func awsEc2query_deserializeOpErrorCreateCapacityReservation(response *smithyhtt } } +type awsEc2query_deserializeOpCreateCapacityReservationFleet struct { +} + +func (*awsEc2query_deserializeOpCreateCapacityReservationFleet) ID() string { + return "OperationDeserializer" +} + +func (m *awsEc2query_deserializeOpCreateCapacityReservationFleet) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsEc2query_deserializeOpErrorCreateCapacityReservationFleet(response, &metadata) + } + output := &CreateCapacityReservationFleetOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsEc2query_deserializeOpDocumentCreateCapacityReservationFleetOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsEc2query_deserializeOpErrorCreateCapacityReservationFleet(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + errorComponents, err := ec2query.GetErrorResponseComponents(errorBody) + if err != nil { + return err + } + awsmiddleware.SetRequestIDMetadata(metadata, errorComponents.RequestID) + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsEc2query_deserializeOpCreateCarrierGateway struct { } @@ -15487,6 +15669,97 @@ func awsEc2query_deserializeOpErrorDescribeByoipCidrs(response *smithyhttp.Respo } } +type awsEc2query_deserializeOpDescribeCapacityReservationFleets struct { +} + +func (*awsEc2query_deserializeOpDescribeCapacityReservationFleets) ID() string { + return "OperationDeserializer" +} + +func (m *awsEc2query_deserializeOpDescribeCapacityReservationFleets) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsEc2query_deserializeOpErrorDescribeCapacityReservationFleets(response, &metadata) + } + output := &DescribeCapacityReservationFleetsOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsEc2query_deserializeOpDocumentDescribeCapacityReservationFleetsOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsEc2query_deserializeOpErrorDescribeCapacityReservationFleets(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + errorComponents, err := ec2query.GetErrorResponseComponents(errorBody) + if err != nil { + return err + } + awsmiddleware.SetRequestIDMetadata(metadata, errorComponents.RequestID) + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsEc2query_deserializeOpDescribeCapacityReservations struct { } @@ -32593,14 +32866,14 @@ func awsEc2query_deserializeOpErrorModifyCapacityReservation(response *smithyhtt } } -type awsEc2query_deserializeOpModifyClientVpnEndpoint struct { +type awsEc2query_deserializeOpModifyCapacityReservationFleet struct { } -func (*awsEc2query_deserializeOpModifyClientVpnEndpoint) ID() string { +func (*awsEc2query_deserializeOpModifyCapacityReservationFleet) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyClientVpnEndpoint) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyCapacityReservationFleet) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -32614,9 +32887,9 @@ func (m *awsEc2query_deserializeOpModifyClientVpnEndpoint) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyClientVpnEndpoint(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyCapacityReservationFleet(response, &metadata) } - output := &ModifyClientVpnEndpointOutput{} + output := &ModifyCapacityReservationFleetOutput{} out.Result = output var buff [1024]byte @@ -32637,7 +32910,7 @@ func (m *awsEc2query_deserializeOpModifyClientVpnEndpoint) HandleDeserialize(ctx } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyClientVpnEndpointOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyCapacityReservationFleetOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -32651,7 +32924,7 @@ func (m *awsEc2query_deserializeOpModifyClientVpnEndpoint) HandleDeserialize(ctx return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyClientVpnEndpoint(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyCapacityReservationFleet(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -32684,14 +32957,14 @@ func awsEc2query_deserializeOpErrorModifyClientVpnEndpoint(response *smithyhttp. } } -type awsEc2query_deserializeOpModifyDefaultCreditSpecification struct { +type awsEc2query_deserializeOpModifyClientVpnEndpoint struct { } -func (*awsEc2query_deserializeOpModifyDefaultCreditSpecification) ID() string { +func (*awsEc2query_deserializeOpModifyClientVpnEndpoint) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyDefaultCreditSpecification) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyClientVpnEndpoint) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -32705,9 +32978,9 @@ func (m *awsEc2query_deserializeOpModifyDefaultCreditSpecification) HandleDeseri } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyDefaultCreditSpecification(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyClientVpnEndpoint(response, &metadata) } - output := &ModifyDefaultCreditSpecificationOutput{} + output := &ModifyClientVpnEndpointOutput{} out.Result = output var buff [1024]byte @@ -32728,7 +33001,7 @@ func (m *awsEc2query_deserializeOpModifyDefaultCreditSpecification) HandleDeseri } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyDefaultCreditSpecificationOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyClientVpnEndpointOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -32742,7 +33015,7 @@ func (m *awsEc2query_deserializeOpModifyDefaultCreditSpecification) HandleDeseri return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyDefaultCreditSpecification(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyClientVpnEndpoint(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -32775,14 +33048,14 @@ func awsEc2query_deserializeOpErrorModifyDefaultCreditSpecification(response *sm } } -type awsEc2query_deserializeOpModifyEbsDefaultKmsKeyId struct { +type awsEc2query_deserializeOpModifyDefaultCreditSpecification struct { } -func (*awsEc2query_deserializeOpModifyEbsDefaultKmsKeyId) ID() string { +func (*awsEc2query_deserializeOpModifyDefaultCreditSpecification) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyEbsDefaultKmsKeyId) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyDefaultCreditSpecification) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -32796,9 +33069,9 @@ func (m *awsEc2query_deserializeOpModifyEbsDefaultKmsKeyId) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyEbsDefaultKmsKeyId(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyDefaultCreditSpecification(response, &metadata) } - output := &ModifyEbsDefaultKmsKeyIdOutput{} + output := &ModifyDefaultCreditSpecificationOutput{} out.Result = output var buff [1024]byte @@ -32819,7 +33092,7 @@ func (m *awsEc2query_deserializeOpModifyEbsDefaultKmsKeyId) HandleDeserialize(ct } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyEbsDefaultKmsKeyIdOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyDefaultCreditSpecificationOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -32833,7 +33106,7 @@ func (m *awsEc2query_deserializeOpModifyEbsDefaultKmsKeyId) HandleDeserialize(ct return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyEbsDefaultKmsKeyId(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyDefaultCreditSpecification(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -32866,14 +33139,14 @@ func awsEc2query_deserializeOpErrorModifyEbsDefaultKmsKeyId(response *smithyhttp } } -type awsEc2query_deserializeOpModifyFleet struct { +type awsEc2query_deserializeOpModifyEbsDefaultKmsKeyId struct { } -func (*awsEc2query_deserializeOpModifyFleet) ID() string { +func (*awsEc2query_deserializeOpModifyEbsDefaultKmsKeyId) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyFleet) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyEbsDefaultKmsKeyId) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -32887,9 +33160,9 @@ func (m *awsEc2query_deserializeOpModifyFleet) HandleDeserialize(ctx context.Con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyFleet(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyEbsDefaultKmsKeyId(response, &metadata) } - output := &ModifyFleetOutput{} + output := &ModifyEbsDefaultKmsKeyIdOutput{} out.Result = output var buff [1024]byte @@ -32910,7 +33183,7 @@ func (m *awsEc2query_deserializeOpModifyFleet) HandleDeserialize(ctx context.Con } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyFleetOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyEbsDefaultKmsKeyIdOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -32924,7 +33197,7 @@ func (m *awsEc2query_deserializeOpModifyFleet) HandleDeserialize(ctx context.Con return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyFleet(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyEbsDefaultKmsKeyId(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -32957,14 +33230,14 @@ func awsEc2query_deserializeOpErrorModifyFleet(response *smithyhttp.Response, me } } -type awsEc2query_deserializeOpModifyFpgaImageAttribute struct { +type awsEc2query_deserializeOpModifyFleet struct { } -func (*awsEc2query_deserializeOpModifyFpgaImageAttribute) ID() string { +func (*awsEc2query_deserializeOpModifyFleet) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyFpgaImageAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyFleet) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -32978,9 +33251,9 @@ func (m *awsEc2query_deserializeOpModifyFpgaImageAttribute) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyFpgaImageAttribute(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyFleet(response, &metadata) } - output := &ModifyFpgaImageAttributeOutput{} + output := &ModifyFleetOutput{} out.Result = output var buff [1024]byte @@ -33001,7 +33274,7 @@ func (m *awsEc2query_deserializeOpModifyFpgaImageAttribute) HandleDeserialize(ct } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyFpgaImageAttributeOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyFleetOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -33015,7 +33288,7 @@ func (m *awsEc2query_deserializeOpModifyFpgaImageAttribute) HandleDeserialize(ct return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyFpgaImageAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyFleet(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -33048,14 +33321,14 @@ func awsEc2query_deserializeOpErrorModifyFpgaImageAttribute(response *smithyhttp } } -type awsEc2query_deserializeOpModifyHosts struct { +type awsEc2query_deserializeOpModifyFpgaImageAttribute struct { } -func (*awsEc2query_deserializeOpModifyHosts) ID() string { +func (*awsEc2query_deserializeOpModifyFpgaImageAttribute) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyHosts) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyFpgaImageAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -33069,9 +33342,9 @@ func (m *awsEc2query_deserializeOpModifyHosts) HandleDeserialize(ctx context.Con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyHosts(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyFpgaImageAttribute(response, &metadata) } - output := &ModifyHostsOutput{} + output := &ModifyFpgaImageAttributeOutput{} out.Result = output var buff [1024]byte @@ -33092,7 +33365,7 @@ func (m *awsEc2query_deserializeOpModifyHosts) HandleDeserialize(ctx context.Con } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyHostsOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyFpgaImageAttributeOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -33106,7 +33379,7 @@ func (m *awsEc2query_deserializeOpModifyHosts) HandleDeserialize(ctx context.Con return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyHosts(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyFpgaImageAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -33139,14 +33412,14 @@ func awsEc2query_deserializeOpErrorModifyHosts(response *smithyhttp.Response, me } } -type awsEc2query_deserializeOpModifyIdentityIdFormat struct { +type awsEc2query_deserializeOpModifyHosts struct { } -func (*awsEc2query_deserializeOpModifyIdentityIdFormat) ID() string { +func (*awsEc2query_deserializeOpModifyHosts) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyIdentityIdFormat) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyHosts) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -33160,89 +33433,44 @@ func (m *awsEc2query_deserializeOpModifyIdentityIdFormat) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyIdentityIdFormat(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyHosts(response, &metadata) } - output := &ModifyIdentityIdFormatOutput{} + output := &ModifyHostsOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { - return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), - } - } - - return out, metadata, err -} - -func awsEc2query_deserializeOpErrorModifyIdentityIdFormat(response *smithyhttp.Response, metadata *middleware.Metadata) error { - var errorBuffer bytes.Buffer - if _, err := io.Copy(&errorBuffer, response.Body); err != nil { - return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil } - errorBody := bytes.NewReader(errorBuffer.Bytes()) - - errorCode := "UnknownError" - errorMessage := errorCode - - errorComponents, err := ec2query.GetErrorResponseComponents(errorBody) if err != nil { - return err - } - awsmiddleware.SetRequestIDMetadata(metadata, errorComponents.RequestID) - if len(errorComponents.Code) != 0 { - errorCode = errorComponents.Code - } - if len(errorComponents.Message) != 0 { - errorMessage = errorComponents.Message - } - errorBody.Seek(0, io.SeekStart) - switch { - default: - genericError := &smithy.GenericAPIError{ - Code: errorCode, - Message: errorMessage, + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), } - return genericError - } -} - -type awsEc2query_deserializeOpModifyIdFormat struct { -} -func (*awsEc2query_deserializeOpModifyIdFormat) ID() string { - return "OperationDeserializer" -} - -func (m *awsEc2query_deserializeOpModifyIdFormat) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( - out middleware.DeserializeOutput, metadata middleware.Metadata, err error, -) { - out, metadata, err = next.HandleDeserialize(ctx, in) + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsEc2query_deserializeOpDocumentModifyHostsOutput(&output, decoder) if err != nil { - return out, metadata, err - } - - response, ok := out.RawResponse.(*smithyhttp.Response) - if !ok { - return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} - } - - if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyIdFormat(response, &metadata) - } - output := &ModifyIdFormatOutput{} - out.Result = output - - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { - return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), } + return out, metadata, err } return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyIdFormat(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyHosts(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -33275,14 +33503,14 @@ func awsEc2query_deserializeOpErrorModifyIdFormat(response *smithyhttp.Response, } } -type awsEc2query_deserializeOpModifyImageAttribute struct { +type awsEc2query_deserializeOpModifyIdentityIdFormat struct { } -func (*awsEc2query_deserializeOpModifyImageAttribute) ID() string { +func (*awsEc2query_deserializeOpModifyIdentityIdFormat) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyImageAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyIdentityIdFormat) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -33296,9 +33524,9 @@ func (m *awsEc2query_deserializeOpModifyImageAttribute) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyImageAttribute(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyIdentityIdFormat(response, &metadata) } - output := &ModifyImageAttributeOutput{} + output := &ModifyIdentityIdFormatOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -33310,7 +33538,7 @@ func (m *awsEc2query_deserializeOpModifyImageAttribute) HandleDeserialize(ctx co return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyImageAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyIdentityIdFormat(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -33343,14 +33571,14 @@ func awsEc2query_deserializeOpErrorModifyImageAttribute(response *smithyhttp.Res } } -type awsEc2query_deserializeOpModifyInstanceAttribute struct { +type awsEc2query_deserializeOpModifyIdFormat struct { } -func (*awsEc2query_deserializeOpModifyInstanceAttribute) ID() string { +func (*awsEc2query_deserializeOpModifyIdFormat) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyInstanceAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyIdFormat) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -33364,9 +33592,9 @@ func (m *awsEc2query_deserializeOpModifyInstanceAttribute) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyInstanceAttribute(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyIdFormat(response, &metadata) } - output := &ModifyInstanceAttributeOutput{} + output := &ModifyIdFormatOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -33378,7 +33606,7 @@ func (m *awsEc2query_deserializeOpModifyInstanceAttribute) HandleDeserialize(ctx return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyInstanceAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyIdFormat(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -33411,14 +33639,14 @@ func awsEc2query_deserializeOpErrorModifyInstanceAttribute(response *smithyhttp. } } -type awsEc2query_deserializeOpModifyInstanceCapacityReservationAttributes struct { +type awsEc2query_deserializeOpModifyImageAttribute struct { } -func (*awsEc2query_deserializeOpModifyInstanceCapacityReservationAttributes) ID() string { +func (*awsEc2query_deserializeOpModifyImageAttribute) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyInstanceCapacityReservationAttributes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyImageAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -33432,44 +33660,21 @@ func (m *awsEc2query_deserializeOpModifyInstanceCapacityReservationAttributes) H } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyInstanceCapacityReservationAttributes(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyImageAttribute(response, &metadata) } - output := &ModifyInstanceCapacityReservationAttributesOutput{} + output := &ModifyImageAttributeOutput{} out.Result = output - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(response.Body, ringBuffer) - rootDecoder := xml.NewDecoder(body) - t, err := smithyxml.FetchRootElement(rootDecoder) - if err == io.EOF { - return out, metadata, nil - } - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - } - - decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyInstanceCapacityReservationAttributesOutput(&output, decoder) - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + Err: fmt.Errorf("failed to discard response body, %w", err), } - return out, metadata, err } return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyInstanceCapacityReservationAttributes(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyImageAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -33502,14 +33707,14 @@ func awsEc2query_deserializeOpErrorModifyInstanceCapacityReservationAttributes(r } } -type awsEc2query_deserializeOpModifyInstanceCreditSpecification struct { +type awsEc2query_deserializeOpModifyInstanceAttribute struct { } -func (*awsEc2query_deserializeOpModifyInstanceCreditSpecification) ID() string { +func (*awsEc2query_deserializeOpModifyInstanceAttribute) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyInstanceCreditSpecification) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyInstanceAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -33523,44 +33728,21 @@ func (m *awsEc2query_deserializeOpModifyInstanceCreditSpecification) HandleDeser } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyInstanceCreditSpecification(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyInstanceAttribute(response, &metadata) } - output := &ModifyInstanceCreditSpecificationOutput{} + output := &ModifyInstanceAttributeOutput{} out.Result = output - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(response.Body, ringBuffer) - rootDecoder := xml.NewDecoder(body) - t, err := smithyxml.FetchRootElement(rootDecoder) - if err == io.EOF { - return out, metadata, nil - } - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - } - - decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyInstanceCreditSpecificationOutput(&output, decoder) - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + Err: fmt.Errorf("failed to discard response body, %w", err), } - return out, metadata, err } return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyInstanceCreditSpecification(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyInstanceAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -33593,14 +33775,14 @@ func awsEc2query_deserializeOpErrorModifyInstanceCreditSpecification(response *s } } -type awsEc2query_deserializeOpModifyInstanceEventStartTime struct { +type awsEc2query_deserializeOpModifyInstanceCapacityReservationAttributes struct { } -func (*awsEc2query_deserializeOpModifyInstanceEventStartTime) ID() string { +func (*awsEc2query_deserializeOpModifyInstanceCapacityReservationAttributes) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyInstanceEventStartTime) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyInstanceCapacityReservationAttributes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -33614,9 +33796,9 @@ func (m *awsEc2query_deserializeOpModifyInstanceEventStartTime) HandleDeserializ } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyInstanceEventStartTime(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyInstanceCapacityReservationAttributes(response, &metadata) } - output := &ModifyInstanceEventStartTimeOutput{} + output := &ModifyInstanceCapacityReservationAttributesOutput{} out.Result = output var buff [1024]byte @@ -33637,7 +33819,7 @@ func (m *awsEc2query_deserializeOpModifyInstanceEventStartTime) HandleDeserializ } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyInstanceEventStartTimeOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyInstanceCapacityReservationAttributesOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -33651,7 +33833,7 @@ func (m *awsEc2query_deserializeOpModifyInstanceEventStartTime) HandleDeserializ return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyInstanceEventStartTime(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyInstanceCapacityReservationAttributes(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -33684,14 +33866,14 @@ func awsEc2query_deserializeOpErrorModifyInstanceEventStartTime(response *smithy } } -type awsEc2query_deserializeOpModifyInstanceEventWindow struct { +type awsEc2query_deserializeOpModifyInstanceCreditSpecification struct { } -func (*awsEc2query_deserializeOpModifyInstanceEventWindow) ID() string { +func (*awsEc2query_deserializeOpModifyInstanceCreditSpecification) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyInstanceEventWindow) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyInstanceCreditSpecification) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -33705,9 +33887,9 @@ func (m *awsEc2query_deserializeOpModifyInstanceEventWindow) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyInstanceEventWindow(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyInstanceCreditSpecification(response, &metadata) } - output := &ModifyInstanceEventWindowOutput{} + output := &ModifyInstanceCreditSpecificationOutput{} out.Result = output var buff [1024]byte @@ -33728,7 +33910,7 @@ func (m *awsEc2query_deserializeOpModifyInstanceEventWindow) HandleDeserialize(c } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyInstanceEventWindowOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyInstanceCreditSpecificationOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -33742,7 +33924,7 @@ func (m *awsEc2query_deserializeOpModifyInstanceEventWindow) HandleDeserialize(c return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyInstanceEventWindow(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyInstanceCreditSpecification(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -33775,14 +33957,14 @@ func awsEc2query_deserializeOpErrorModifyInstanceEventWindow(response *smithyhtt } } -type awsEc2query_deserializeOpModifyInstanceMetadataOptions struct { +type awsEc2query_deserializeOpModifyInstanceEventStartTime struct { } -func (*awsEc2query_deserializeOpModifyInstanceMetadataOptions) ID() string { +func (*awsEc2query_deserializeOpModifyInstanceEventStartTime) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyInstanceMetadataOptions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyInstanceEventStartTime) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -33796,9 +33978,9 @@ func (m *awsEc2query_deserializeOpModifyInstanceMetadataOptions) HandleDeseriali } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyInstanceMetadataOptions(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyInstanceEventStartTime(response, &metadata) } - output := &ModifyInstanceMetadataOptionsOutput{} + output := &ModifyInstanceEventStartTimeOutput{} out.Result = output var buff [1024]byte @@ -33819,7 +34001,7 @@ func (m *awsEc2query_deserializeOpModifyInstanceMetadataOptions) HandleDeseriali } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyInstanceMetadataOptionsOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyInstanceEventStartTimeOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -33833,7 +34015,7 @@ func (m *awsEc2query_deserializeOpModifyInstanceMetadataOptions) HandleDeseriali return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyInstanceMetadataOptions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyInstanceEventStartTime(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -33866,14 +34048,14 @@ func awsEc2query_deserializeOpErrorModifyInstanceMetadataOptions(response *smith } } -type awsEc2query_deserializeOpModifyInstancePlacement struct { +type awsEc2query_deserializeOpModifyInstanceEventWindow struct { } -func (*awsEc2query_deserializeOpModifyInstancePlacement) ID() string { +func (*awsEc2query_deserializeOpModifyInstanceEventWindow) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyInstancePlacement) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyInstanceEventWindow) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -33887,9 +34069,9 @@ func (m *awsEc2query_deserializeOpModifyInstancePlacement) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyInstancePlacement(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyInstanceEventWindow(response, &metadata) } - output := &ModifyInstancePlacementOutput{} + output := &ModifyInstanceEventWindowOutput{} out.Result = output var buff [1024]byte @@ -33910,7 +34092,7 @@ func (m *awsEc2query_deserializeOpModifyInstancePlacement) HandleDeserialize(ctx } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyInstancePlacementOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyInstanceEventWindowOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -33924,7 +34106,7 @@ func (m *awsEc2query_deserializeOpModifyInstancePlacement) HandleDeserialize(ctx return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyInstancePlacement(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyInstanceEventWindow(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -33957,14 +34139,14 @@ func awsEc2query_deserializeOpErrorModifyInstancePlacement(response *smithyhttp. } } -type awsEc2query_deserializeOpModifyLaunchTemplate struct { +type awsEc2query_deserializeOpModifyInstanceMetadataOptions struct { } -func (*awsEc2query_deserializeOpModifyLaunchTemplate) ID() string { +func (*awsEc2query_deserializeOpModifyInstanceMetadataOptions) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyLaunchTemplate) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyInstanceMetadataOptions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -33978,9 +34160,9 @@ func (m *awsEc2query_deserializeOpModifyLaunchTemplate) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyLaunchTemplate(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyInstanceMetadataOptions(response, &metadata) } - output := &ModifyLaunchTemplateOutput{} + output := &ModifyInstanceMetadataOptionsOutput{} out.Result = output var buff [1024]byte @@ -34001,7 +34183,7 @@ func (m *awsEc2query_deserializeOpModifyLaunchTemplate) HandleDeserialize(ctx co } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyLaunchTemplateOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyInstanceMetadataOptionsOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -34015,7 +34197,7 @@ func (m *awsEc2query_deserializeOpModifyLaunchTemplate) HandleDeserialize(ctx co return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyLaunchTemplate(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyInstanceMetadataOptions(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -34048,14 +34230,14 @@ func awsEc2query_deserializeOpErrorModifyLaunchTemplate(response *smithyhttp.Res } } -type awsEc2query_deserializeOpModifyManagedPrefixList struct { +type awsEc2query_deserializeOpModifyInstancePlacement struct { } -func (*awsEc2query_deserializeOpModifyManagedPrefixList) ID() string { +func (*awsEc2query_deserializeOpModifyInstancePlacement) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyManagedPrefixList) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyInstancePlacement) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -34069,9 +34251,9 @@ func (m *awsEc2query_deserializeOpModifyManagedPrefixList) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyManagedPrefixList(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyInstancePlacement(response, &metadata) } - output := &ModifyManagedPrefixListOutput{} + output := &ModifyInstancePlacementOutput{} out.Result = output var buff [1024]byte @@ -34092,7 +34274,7 @@ func (m *awsEc2query_deserializeOpModifyManagedPrefixList) HandleDeserialize(ctx } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyManagedPrefixListOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyInstancePlacementOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -34106,75 +34288,7 @@ func (m *awsEc2query_deserializeOpModifyManagedPrefixList) HandleDeserialize(ctx return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyManagedPrefixList(response *smithyhttp.Response, metadata *middleware.Metadata) error { - var errorBuffer bytes.Buffer - if _, err := io.Copy(&errorBuffer, response.Body); err != nil { - return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} - } - errorBody := bytes.NewReader(errorBuffer.Bytes()) - - errorCode := "UnknownError" - errorMessage := errorCode - - errorComponents, err := ec2query.GetErrorResponseComponents(errorBody) - if err != nil { - return err - } - awsmiddleware.SetRequestIDMetadata(metadata, errorComponents.RequestID) - if len(errorComponents.Code) != 0 { - errorCode = errorComponents.Code - } - if len(errorComponents.Message) != 0 { - errorMessage = errorComponents.Message - } - errorBody.Seek(0, io.SeekStart) - switch { - default: - genericError := &smithy.GenericAPIError{ - Code: errorCode, - Message: errorMessage, - } - return genericError - - } -} - -type awsEc2query_deserializeOpModifyNetworkInterfaceAttribute struct { -} - -func (*awsEc2query_deserializeOpModifyNetworkInterfaceAttribute) ID() string { - return "OperationDeserializer" -} - -func (m *awsEc2query_deserializeOpModifyNetworkInterfaceAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( - out middleware.DeserializeOutput, metadata middleware.Metadata, err error, -) { - out, metadata, err = next.HandleDeserialize(ctx, in) - if err != nil { - return out, metadata, err - } - - response, ok := out.RawResponse.(*smithyhttp.Response) - if !ok { - return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} - } - - if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyNetworkInterfaceAttribute(response, &metadata) - } - output := &ModifyNetworkInterfaceAttributeOutput{} - out.Result = output - - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { - return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), - } - } - - return out, metadata, err -} - -func awsEc2query_deserializeOpErrorModifyNetworkInterfaceAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyInstancePlacement(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -34207,14 +34321,14 @@ func awsEc2query_deserializeOpErrorModifyNetworkInterfaceAttribute(response *smi } } -type awsEc2query_deserializeOpModifyReservedInstances struct { +type awsEc2query_deserializeOpModifyLaunchTemplate struct { } -func (*awsEc2query_deserializeOpModifyReservedInstances) ID() string { +func (*awsEc2query_deserializeOpModifyLaunchTemplate) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyReservedInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyLaunchTemplate) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -34228,9 +34342,9 @@ func (m *awsEc2query_deserializeOpModifyReservedInstances) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyReservedInstances(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyLaunchTemplate(response, &metadata) } - output := &ModifyReservedInstancesOutput{} + output := &ModifyLaunchTemplateOutput{} out.Result = output var buff [1024]byte @@ -34251,7 +34365,7 @@ func (m *awsEc2query_deserializeOpModifyReservedInstances) HandleDeserialize(ctx } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyReservedInstancesOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyLaunchTemplateOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -34265,7 +34379,7 @@ func (m *awsEc2query_deserializeOpModifyReservedInstances) HandleDeserialize(ctx return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyReservedInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyLaunchTemplate(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -34298,14 +34412,14 @@ func awsEc2query_deserializeOpErrorModifyReservedInstances(response *smithyhttp. } } -type awsEc2query_deserializeOpModifySecurityGroupRules struct { +type awsEc2query_deserializeOpModifyManagedPrefixList struct { } -func (*awsEc2query_deserializeOpModifySecurityGroupRules) ID() string { +func (*awsEc2query_deserializeOpModifyManagedPrefixList) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifySecurityGroupRules) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyManagedPrefixList) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -34319,9 +34433,9 @@ func (m *awsEc2query_deserializeOpModifySecurityGroupRules) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifySecurityGroupRules(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyManagedPrefixList(response, &metadata) } - output := &ModifySecurityGroupRulesOutput{} + output := &ModifyManagedPrefixListOutput{} out.Result = output var buff [1024]byte @@ -34342,7 +34456,7 @@ func (m *awsEc2query_deserializeOpModifySecurityGroupRules) HandleDeserialize(ct } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifySecurityGroupRulesOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyManagedPrefixListOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -34356,7 +34470,7 @@ func (m *awsEc2query_deserializeOpModifySecurityGroupRules) HandleDeserialize(ct return out, metadata, err } -func awsEc2query_deserializeOpErrorModifySecurityGroupRules(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyManagedPrefixList(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -34389,14 +34503,14 @@ func awsEc2query_deserializeOpErrorModifySecurityGroupRules(response *smithyhttp } } -type awsEc2query_deserializeOpModifySnapshotAttribute struct { +type awsEc2query_deserializeOpModifyNetworkInterfaceAttribute struct { } -func (*awsEc2query_deserializeOpModifySnapshotAttribute) ID() string { +func (*awsEc2query_deserializeOpModifyNetworkInterfaceAttribute) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifySnapshotAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyNetworkInterfaceAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -34410,9 +34524,9 @@ func (m *awsEc2query_deserializeOpModifySnapshotAttribute) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifySnapshotAttribute(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyNetworkInterfaceAttribute(response, &metadata) } - output := &ModifySnapshotAttributeOutput{} + output := &ModifyNetworkInterfaceAttributeOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -34424,7 +34538,7 @@ func (m *awsEc2query_deserializeOpModifySnapshotAttribute) HandleDeserialize(ctx return out, metadata, err } -func awsEc2query_deserializeOpErrorModifySnapshotAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyNetworkInterfaceAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -34457,14 +34571,14 @@ func awsEc2query_deserializeOpErrorModifySnapshotAttribute(response *smithyhttp. } } -type awsEc2query_deserializeOpModifySpotFleetRequest struct { +type awsEc2query_deserializeOpModifyReservedInstances struct { } -func (*awsEc2query_deserializeOpModifySpotFleetRequest) ID() string { +func (*awsEc2query_deserializeOpModifyReservedInstances) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifySpotFleetRequest) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyReservedInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -34478,9 +34592,9 @@ func (m *awsEc2query_deserializeOpModifySpotFleetRequest) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifySpotFleetRequest(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyReservedInstances(response, &metadata) } - output := &ModifySpotFleetRequestOutput{} + output := &ModifyReservedInstancesOutput{} out.Result = output var buff [1024]byte @@ -34501,7 +34615,7 @@ func (m *awsEc2query_deserializeOpModifySpotFleetRequest) HandleDeserialize(ctx } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifySpotFleetRequestOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyReservedInstancesOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -34515,7 +34629,7 @@ func (m *awsEc2query_deserializeOpModifySpotFleetRequest) HandleDeserialize(ctx return out, metadata, err } -func awsEc2query_deserializeOpErrorModifySpotFleetRequest(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyReservedInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -34548,14 +34662,14 @@ func awsEc2query_deserializeOpErrorModifySpotFleetRequest(response *smithyhttp.R } } -type awsEc2query_deserializeOpModifySubnetAttribute struct { +type awsEc2query_deserializeOpModifySecurityGroupRules struct { } -func (*awsEc2query_deserializeOpModifySubnetAttribute) ID() string { +func (*awsEc2query_deserializeOpModifySecurityGroupRules) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifySubnetAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifySecurityGroupRules) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -34569,21 +34683,44 @@ func (m *awsEc2query_deserializeOpModifySubnetAttribute) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifySubnetAttribute(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifySecurityGroupRules(response, &metadata) } - output := &ModifySubnetAttributeOutput{} + output := &ModifySecurityGroupRulesOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), } } + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsEc2query_deserializeOpDocumentModifySecurityGroupRulesOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + return out, metadata, err } -func awsEc2query_deserializeOpErrorModifySubnetAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifySecurityGroupRules(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -34616,14 +34753,14 @@ func awsEc2query_deserializeOpErrorModifySubnetAttribute(response *smithyhttp.Re } } -type awsEc2query_deserializeOpModifyTrafficMirrorFilterNetworkServices struct { +type awsEc2query_deserializeOpModifySnapshotAttribute struct { } -func (*awsEc2query_deserializeOpModifyTrafficMirrorFilterNetworkServices) ID() string { +func (*awsEc2query_deserializeOpModifySnapshotAttribute) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyTrafficMirrorFilterNetworkServices) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifySnapshotAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -34637,44 +34774,21 @@ func (m *awsEc2query_deserializeOpModifyTrafficMirrorFilterNetworkServices) Hand } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyTrafficMirrorFilterNetworkServices(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifySnapshotAttribute(response, &metadata) } - output := &ModifyTrafficMirrorFilterNetworkServicesOutput{} + output := &ModifySnapshotAttributeOutput{} out.Result = output - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(response.Body, ringBuffer) - rootDecoder := xml.NewDecoder(body) - t, err := smithyxml.FetchRootElement(rootDecoder) - if err == io.EOF { - return out, metadata, nil - } - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - } - - decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyTrafficMirrorFilterNetworkServicesOutput(&output, decoder) - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + Err: fmt.Errorf("failed to discard response body, %w", err), } - return out, metadata, err } return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyTrafficMirrorFilterNetworkServices(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifySnapshotAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -34707,14 +34821,14 @@ func awsEc2query_deserializeOpErrorModifyTrafficMirrorFilterNetworkServices(resp } } -type awsEc2query_deserializeOpModifyTrafficMirrorFilterRule struct { +type awsEc2query_deserializeOpModifySpotFleetRequest struct { } -func (*awsEc2query_deserializeOpModifyTrafficMirrorFilterRule) ID() string { +func (*awsEc2query_deserializeOpModifySpotFleetRequest) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyTrafficMirrorFilterRule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifySpotFleetRequest) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -34728,9 +34842,9 @@ func (m *awsEc2query_deserializeOpModifyTrafficMirrorFilterRule) HandleDeseriali } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyTrafficMirrorFilterRule(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifySpotFleetRequest(response, &metadata) } - output := &ModifyTrafficMirrorFilterRuleOutput{} + output := &ModifySpotFleetRequestOutput{} out.Result = output var buff [1024]byte @@ -34751,7 +34865,7 @@ func (m *awsEc2query_deserializeOpModifyTrafficMirrorFilterRule) HandleDeseriali } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyTrafficMirrorFilterRuleOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifySpotFleetRequestOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -34765,7 +34879,7 @@ func (m *awsEc2query_deserializeOpModifyTrafficMirrorFilterRule) HandleDeseriali return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyTrafficMirrorFilterRule(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifySpotFleetRequest(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -34798,14 +34912,14 @@ func awsEc2query_deserializeOpErrorModifyTrafficMirrorFilterRule(response *smith } } -type awsEc2query_deserializeOpModifyTrafficMirrorSession struct { +type awsEc2query_deserializeOpModifySubnetAttribute struct { } -func (*awsEc2query_deserializeOpModifyTrafficMirrorSession) ID() string { +func (*awsEc2query_deserializeOpModifySubnetAttribute) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyTrafficMirrorSession) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifySubnetAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -34819,44 +34933,21 @@ func (m *awsEc2query_deserializeOpModifyTrafficMirrorSession) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyTrafficMirrorSession(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifySubnetAttribute(response, &metadata) } - output := &ModifyTrafficMirrorSessionOutput{} + output := &ModifySubnetAttributeOutput{} out.Result = output - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(response.Body, ringBuffer) - rootDecoder := xml.NewDecoder(body) - t, err := smithyxml.FetchRootElement(rootDecoder) - if err == io.EOF { - return out, metadata, nil - } - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - } - - decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyTrafficMirrorSessionOutput(&output, decoder) - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + Err: fmt.Errorf("failed to discard response body, %w", err), } - return out, metadata, err } return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyTrafficMirrorSession(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifySubnetAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -34889,14 +34980,14 @@ func awsEc2query_deserializeOpErrorModifyTrafficMirrorSession(response *smithyht } } -type awsEc2query_deserializeOpModifyTransitGateway struct { +type awsEc2query_deserializeOpModifyTrafficMirrorFilterNetworkServices struct { } -func (*awsEc2query_deserializeOpModifyTransitGateway) ID() string { +func (*awsEc2query_deserializeOpModifyTrafficMirrorFilterNetworkServices) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyTransitGateway) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyTrafficMirrorFilterNetworkServices) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -34910,9 +35001,9 @@ func (m *awsEc2query_deserializeOpModifyTransitGateway) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyTransitGateway(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyTrafficMirrorFilterNetworkServices(response, &metadata) } - output := &ModifyTransitGatewayOutput{} + output := &ModifyTrafficMirrorFilterNetworkServicesOutput{} out.Result = output var buff [1024]byte @@ -34933,7 +35024,7 @@ func (m *awsEc2query_deserializeOpModifyTransitGateway) HandleDeserialize(ctx co } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyTransitGatewayOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyTrafficMirrorFilterNetworkServicesOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -34947,7 +35038,7 @@ func (m *awsEc2query_deserializeOpModifyTransitGateway) HandleDeserialize(ctx co return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyTransitGateway(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyTrafficMirrorFilterNetworkServices(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -34980,14 +35071,14 @@ func awsEc2query_deserializeOpErrorModifyTransitGateway(response *smithyhttp.Res } } -type awsEc2query_deserializeOpModifyTransitGatewayPrefixListReference struct { +type awsEc2query_deserializeOpModifyTrafficMirrorFilterRule struct { } -func (*awsEc2query_deserializeOpModifyTransitGatewayPrefixListReference) ID() string { +func (*awsEc2query_deserializeOpModifyTrafficMirrorFilterRule) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyTransitGatewayPrefixListReference) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyTrafficMirrorFilterRule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -35001,9 +35092,9 @@ func (m *awsEc2query_deserializeOpModifyTransitGatewayPrefixListReference) Handl } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyTransitGatewayPrefixListReference(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyTrafficMirrorFilterRule(response, &metadata) } - output := &ModifyTransitGatewayPrefixListReferenceOutput{} + output := &ModifyTrafficMirrorFilterRuleOutput{} out.Result = output var buff [1024]byte @@ -35024,7 +35115,7 @@ func (m *awsEc2query_deserializeOpModifyTransitGatewayPrefixListReference) Handl } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyTransitGatewayPrefixListReferenceOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyTrafficMirrorFilterRuleOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -35038,7 +35129,7 @@ func (m *awsEc2query_deserializeOpModifyTransitGatewayPrefixListReference) Handl return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyTransitGatewayPrefixListReference(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyTrafficMirrorFilterRule(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -35071,14 +35162,14 @@ func awsEc2query_deserializeOpErrorModifyTransitGatewayPrefixListReference(respo } } -type awsEc2query_deserializeOpModifyTransitGatewayVpcAttachment struct { +type awsEc2query_deserializeOpModifyTrafficMirrorSession struct { } -func (*awsEc2query_deserializeOpModifyTransitGatewayVpcAttachment) ID() string { +func (*awsEc2query_deserializeOpModifyTrafficMirrorSession) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyTransitGatewayVpcAttachment) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyTrafficMirrorSession) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -35092,9 +35183,9 @@ func (m *awsEc2query_deserializeOpModifyTransitGatewayVpcAttachment) HandleDeser } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyTransitGatewayVpcAttachment(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyTrafficMirrorSession(response, &metadata) } - output := &ModifyTransitGatewayVpcAttachmentOutput{} + output := &ModifyTrafficMirrorSessionOutput{} out.Result = output var buff [1024]byte @@ -35115,7 +35206,7 @@ func (m *awsEc2query_deserializeOpModifyTransitGatewayVpcAttachment) HandleDeser } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyTransitGatewayVpcAttachmentOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyTrafficMirrorSessionOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -35129,7 +35220,7 @@ func (m *awsEc2query_deserializeOpModifyTransitGatewayVpcAttachment) HandleDeser return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyTransitGatewayVpcAttachment(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyTrafficMirrorSession(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -35162,14 +35253,14 @@ func awsEc2query_deserializeOpErrorModifyTransitGatewayVpcAttachment(response *s } } -type awsEc2query_deserializeOpModifyVolume struct { +type awsEc2query_deserializeOpModifyTransitGateway struct { } -func (*awsEc2query_deserializeOpModifyVolume) ID() string { +func (*awsEc2query_deserializeOpModifyTransitGateway) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyVolume) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyTransitGateway) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -35183,9 +35274,9 @@ func (m *awsEc2query_deserializeOpModifyVolume) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyVolume(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyTransitGateway(response, &metadata) } - output := &ModifyVolumeOutput{} + output := &ModifyTransitGatewayOutput{} out.Result = output var buff [1024]byte @@ -35206,7 +35297,7 @@ func (m *awsEc2query_deserializeOpModifyVolume) HandleDeserialize(ctx context.Co } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyVolumeOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyTransitGatewayOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -35220,143 +35311,7 @@ func (m *awsEc2query_deserializeOpModifyVolume) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyVolume(response *smithyhttp.Response, metadata *middleware.Metadata) error { - var errorBuffer bytes.Buffer - if _, err := io.Copy(&errorBuffer, response.Body); err != nil { - return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} - } - errorBody := bytes.NewReader(errorBuffer.Bytes()) - - errorCode := "UnknownError" - errorMessage := errorCode - - errorComponents, err := ec2query.GetErrorResponseComponents(errorBody) - if err != nil { - return err - } - awsmiddleware.SetRequestIDMetadata(metadata, errorComponents.RequestID) - if len(errorComponents.Code) != 0 { - errorCode = errorComponents.Code - } - if len(errorComponents.Message) != 0 { - errorMessage = errorComponents.Message - } - errorBody.Seek(0, io.SeekStart) - switch { - default: - genericError := &smithy.GenericAPIError{ - Code: errorCode, - Message: errorMessage, - } - return genericError - - } -} - -type awsEc2query_deserializeOpModifyVolumeAttribute struct { -} - -func (*awsEc2query_deserializeOpModifyVolumeAttribute) ID() string { - return "OperationDeserializer" -} - -func (m *awsEc2query_deserializeOpModifyVolumeAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( - out middleware.DeserializeOutput, metadata middleware.Metadata, err error, -) { - out, metadata, err = next.HandleDeserialize(ctx, in) - if err != nil { - return out, metadata, err - } - - response, ok := out.RawResponse.(*smithyhttp.Response) - if !ok { - return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} - } - - if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyVolumeAttribute(response, &metadata) - } - output := &ModifyVolumeAttributeOutput{} - out.Result = output - - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { - return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), - } - } - - return out, metadata, err -} - -func awsEc2query_deserializeOpErrorModifyVolumeAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { - var errorBuffer bytes.Buffer - if _, err := io.Copy(&errorBuffer, response.Body); err != nil { - return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} - } - errorBody := bytes.NewReader(errorBuffer.Bytes()) - - errorCode := "UnknownError" - errorMessage := errorCode - - errorComponents, err := ec2query.GetErrorResponseComponents(errorBody) - if err != nil { - return err - } - awsmiddleware.SetRequestIDMetadata(metadata, errorComponents.RequestID) - if len(errorComponents.Code) != 0 { - errorCode = errorComponents.Code - } - if len(errorComponents.Message) != 0 { - errorMessage = errorComponents.Message - } - errorBody.Seek(0, io.SeekStart) - switch { - default: - genericError := &smithy.GenericAPIError{ - Code: errorCode, - Message: errorMessage, - } - return genericError - - } -} - -type awsEc2query_deserializeOpModifyVpcAttribute struct { -} - -func (*awsEc2query_deserializeOpModifyVpcAttribute) ID() string { - return "OperationDeserializer" -} - -func (m *awsEc2query_deserializeOpModifyVpcAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( - out middleware.DeserializeOutput, metadata middleware.Metadata, err error, -) { - out, metadata, err = next.HandleDeserialize(ctx, in) - if err != nil { - return out, metadata, err - } - - response, ok := out.RawResponse.(*smithyhttp.Response) - if !ok { - return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} - } - - if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyVpcAttribute(response, &metadata) - } - output := &ModifyVpcAttributeOutput{} - out.Result = output - - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { - return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), - } - } - - return out, metadata, err -} - -func awsEc2query_deserializeOpErrorModifyVpcAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyTransitGateway(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -35389,14 +35344,14 @@ func awsEc2query_deserializeOpErrorModifyVpcAttribute(response *smithyhttp.Respo } } -type awsEc2query_deserializeOpModifyVpcEndpoint struct { +type awsEc2query_deserializeOpModifyTransitGatewayPrefixListReference struct { } -func (*awsEc2query_deserializeOpModifyVpcEndpoint) ID() string { +func (*awsEc2query_deserializeOpModifyTransitGatewayPrefixListReference) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyVpcEndpoint) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyTransitGatewayPrefixListReference) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -35410,9 +35365,9 @@ func (m *awsEc2query_deserializeOpModifyVpcEndpoint) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyVpcEndpoint(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyTransitGatewayPrefixListReference(response, &metadata) } - output := &ModifyVpcEndpointOutput{} + output := &ModifyTransitGatewayPrefixListReferenceOutput{} out.Result = output var buff [1024]byte @@ -35433,7 +35388,7 @@ func (m *awsEc2query_deserializeOpModifyVpcEndpoint) HandleDeserialize(ctx conte } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyVpcEndpointOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyTransitGatewayPrefixListReferenceOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -35447,7 +35402,7 @@ func (m *awsEc2query_deserializeOpModifyVpcEndpoint) HandleDeserialize(ctx conte return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyVpcEndpoint(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyTransitGatewayPrefixListReference(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -35480,14 +35435,14 @@ func awsEc2query_deserializeOpErrorModifyVpcEndpoint(response *smithyhttp.Respon } } -type awsEc2query_deserializeOpModifyVpcEndpointConnectionNotification struct { +type awsEc2query_deserializeOpModifyTransitGatewayVpcAttachment struct { } -func (*awsEc2query_deserializeOpModifyVpcEndpointConnectionNotification) ID() string { +func (*awsEc2query_deserializeOpModifyTransitGatewayVpcAttachment) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyVpcEndpointConnectionNotification) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyTransitGatewayVpcAttachment) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -35501,9 +35456,9 @@ func (m *awsEc2query_deserializeOpModifyVpcEndpointConnectionNotification) Handl } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyVpcEndpointConnectionNotification(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyTransitGatewayVpcAttachment(response, &metadata) } - output := &ModifyVpcEndpointConnectionNotificationOutput{} + output := &ModifyTransitGatewayVpcAttachmentOutput{} out.Result = output var buff [1024]byte @@ -35524,7 +35479,7 @@ func (m *awsEc2query_deserializeOpModifyVpcEndpointConnectionNotification) Handl } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyVpcEndpointConnectionNotificationOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyTransitGatewayVpcAttachmentOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -35538,7 +35493,7 @@ func (m *awsEc2query_deserializeOpModifyVpcEndpointConnectionNotification) Handl return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyVpcEndpointConnectionNotification(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyTransitGatewayVpcAttachment(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -35571,14 +35526,14 @@ func awsEc2query_deserializeOpErrorModifyVpcEndpointConnectionNotification(respo } } -type awsEc2query_deserializeOpModifyVpcEndpointServiceConfiguration struct { +type awsEc2query_deserializeOpModifyVolume struct { } -func (*awsEc2query_deserializeOpModifyVpcEndpointServiceConfiguration) ID() string { +func (*awsEc2query_deserializeOpModifyVolume) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyVpcEndpointServiceConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyVolume) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -35592,9 +35547,9 @@ func (m *awsEc2query_deserializeOpModifyVpcEndpointServiceConfiguration) HandleD } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyVpcEndpointServiceConfiguration(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyVolume(response, &metadata) } - output := &ModifyVpcEndpointServiceConfigurationOutput{} + output := &ModifyVolumeOutput{} out.Result = output var buff [1024]byte @@ -35615,7 +35570,7 @@ func (m *awsEc2query_deserializeOpModifyVpcEndpointServiceConfiguration) HandleD } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyVpcEndpointServiceConfigurationOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyVolumeOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -35629,7 +35584,7 @@ func (m *awsEc2query_deserializeOpModifyVpcEndpointServiceConfiguration) HandleD return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyVpcEndpointServiceConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyVolume(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -35662,14 +35617,14 @@ func awsEc2query_deserializeOpErrorModifyVpcEndpointServiceConfiguration(respons } } -type awsEc2query_deserializeOpModifyVpcEndpointServicePermissions struct { +type awsEc2query_deserializeOpModifyVolumeAttribute struct { } -func (*awsEc2query_deserializeOpModifyVpcEndpointServicePermissions) ID() string { +func (*awsEc2query_deserializeOpModifyVolumeAttribute) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyVpcEndpointServicePermissions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyVolumeAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -35683,44 +35638,21 @@ func (m *awsEc2query_deserializeOpModifyVpcEndpointServicePermissions) HandleDes } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyVpcEndpointServicePermissions(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyVolumeAttribute(response, &metadata) } - output := &ModifyVpcEndpointServicePermissionsOutput{} + output := &ModifyVolumeAttributeOutput{} out.Result = output - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(response.Body, ringBuffer) - rootDecoder := xml.NewDecoder(body) - t, err := smithyxml.FetchRootElement(rootDecoder) - if err == io.EOF { - return out, metadata, nil - } - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - } - - decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyVpcEndpointServicePermissionsOutput(&output, decoder) - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + Err: fmt.Errorf("failed to discard response body, %w", err), } - return out, metadata, err } return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyVpcEndpointServicePermissions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyVolumeAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -35753,14 +35685,14 @@ func awsEc2query_deserializeOpErrorModifyVpcEndpointServicePermissions(response } } -type awsEc2query_deserializeOpModifyVpcPeeringConnectionOptions struct { +type awsEc2query_deserializeOpModifyVpcAttribute struct { } -func (*awsEc2query_deserializeOpModifyVpcPeeringConnectionOptions) ID() string { +func (*awsEc2query_deserializeOpModifyVpcAttribute) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyVpcPeeringConnectionOptions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyVpcAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -35774,44 +35706,21 @@ func (m *awsEc2query_deserializeOpModifyVpcPeeringConnectionOptions) HandleDeser } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyVpcPeeringConnectionOptions(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyVpcAttribute(response, &metadata) } - output := &ModifyVpcPeeringConnectionOptionsOutput{} + output := &ModifyVpcAttributeOutput{} out.Result = output - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(response.Body, ringBuffer) - rootDecoder := xml.NewDecoder(body) - t, err := smithyxml.FetchRootElement(rootDecoder) - if err == io.EOF { - return out, metadata, nil - } - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - } - - decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyVpcPeeringConnectionOptionsOutput(&output, decoder) - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + Err: fmt.Errorf("failed to discard response body, %w", err), } - return out, metadata, err } return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyVpcPeeringConnectionOptions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyVpcAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -35844,14 +35753,14 @@ func awsEc2query_deserializeOpErrorModifyVpcPeeringConnectionOptions(response *s } } -type awsEc2query_deserializeOpModifyVpcTenancy struct { +type awsEc2query_deserializeOpModifyVpcEndpoint struct { } -func (*awsEc2query_deserializeOpModifyVpcTenancy) ID() string { +func (*awsEc2query_deserializeOpModifyVpcEndpoint) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyVpcTenancy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyVpcEndpoint) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -35865,9 +35774,9 @@ func (m *awsEc2query_deserializeOpModifyVpcTenancy) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyVpcTenancy(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyVpcEndpoint(response, &metadata) } - output := &ModifyVpcTenancyOutput{} + output := &ModifyVpcEndpointOutput{} out.Result = output var buff [1024]byte @@ -35888,7 +35797,7 @@ func (m *awsEc2query_deserializeOpModifyVpcTenancy) HandleDeserialize(ctx contex } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyVpcTenancyOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyVpcEndpointOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -35902,7 +35811,7 @@ func (m *awsEc2query_deserializeOpModifyVpcTenancy) HandleDeserialize(ctx contex return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyVpcTenancy(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyVpcEndpoint(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -35935,14 +35844,14 @@ func awsEc2query_deserializeOpErrorModifyVpcTenancy(response *smithyhttp.Respons } } -type awsEc2query_deserializeOpModifyVpnConnection struct { +type awsEc2query_deserializeOpModifyVpcEndpointConnectionNotification struct { } -func (*awsEc2query_deserializeOpModifyVpnConnection) ID() string { +func (*awsEc2query_deserializeOpModifyVpcEndpointConnectionNotification) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyVpnConnection) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyVpcEndpointConnectionNotification) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -35956,9 +35865,9 @@ func (m *awsEc2query_deserializeOpModifyVpnConnection) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyVpnConnection(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyVpcEndpointConnectionNotification(response, &metadata) } - output := &ModifyVpnConnectionOutput{} + output := &ModifyVpcEndpointConnectionNotificationOutput{} out.Result = output var buff [1024]byte @@ -35979,7 +35888,7 @@ func (m *awsEc2query_deserializeOpModifyVpnConnection) HandleDeserialize(ctx con } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyVpnConnectionOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyVpcEndpointConnectionNotificationOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -35993,7 +35902,7 @@ func (m *awsEc2query_deserializeOpModifyVpnConnection) HandleDeserialize(ctx con return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyVpnConnection(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyVpcEndpointConnectionNotification(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -36026,14 +35935,14 @@ func awsEc2query_deserializeOpErrorModifyVpnConnection(response *smithyhttp.Resp } } -type awsEc2query_deserializeOpModifyVpnConnectionOptions struct { +type awsEc2query_deserializeOpModifyVpcEndpointServiceConfiguration struct { } -func (*awsEc2query_deserializeOpModifyVpnConnectionOptions) ID() string { +func (*awsEc2query_deserializeOpModifyVpcEndpointServiceConfiguration) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyVpnConnectionOptions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyVpcEndpointServiceConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -36047,9 +35956,9 @@ func (m *awsEc2query_deserializeOpModifyVpnConnectionOptions) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyVpnConnectionOptions(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyVpcEndpointServiceConfiguration(response, &metadata) } - output := &ModifyVpnConnectionOptionsOutput{} + output := &ModifyVpcEndpointServiceConfigurationOutput{} out.Result = output var buff [1024]byte @@ -36070,7 +35979,7 @@ func (m *awsEc2query_deserializeOpModifyVpnConnectionOptions) HandleDeserialize( } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyVpnConnectionOptionsOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyVpcEndpointServiceConfigurationOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -36084,7 +35993,7 @@ func (m *awsEc2query_deserializeOpModifyVpnConnectionOptions) HandleDeserialize( return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyVpnConnectionOptions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyVpcEndpointServiceConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -36117,14 +36026,14 @@ func awsEc2query_deserializeOpErrorModifyVpnConnectionOptions(response *smithyht } } -type awsEc2query_deserializeOpModifyVpnTunnelCertificate struct { +type awsEc2query_deserializeOpModifyVpcEndpointServicePermissions struct { } -func (*awsEc2query_deserializeOpModifyVpnTunnelCertificate) ID() string { +func (*awsEc2query_deserializeOpModifyVpcEndpointServicePermissions) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyVpnTunnelCertificate) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyVpcEndpointServicePermissions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -36138,9 +36047,9 @@ func (m *awsEc2query_deserializeOpModifyVpnTunnelCertificate) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyVpnTunnelCertificate(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyVpcEndpointServicePermissions(response, &metadata) } - output := &ModifyVpnTunnelCertificateOutput{} + output := &ModifyVpcEndpointServicePermissionsOutput{} out.Result = output var buff [1024]byte @@ -36161,7 +36070,7 @@ func (m *awsEc2query_deserializeOpModifyVpnTunnelCertificate) HandleDeserialize( } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyVpnTunnelCertificateOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyVpcEndpointServicePermissionsOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -36175,7 +36084,7 @@ func (m *awsEc2query_deserializeOpModifyVpnTunnelCertificate) HandleDeserialize( return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyVpnTunnelCertificate(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyVpcEndpointServicePermissions(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -36208,14 +36117,14 @@ func awsEc2query_deserializeOpErrorModifyVpnTunnelCertificate(response *smithyht } } -type awsEc2query_deserializeOpModifyVpnTunnelOptions struct { +type awsEc2query_deserializeOpModifyVpcPeeringConnectionOptions struct { } -func (*awsEc2query_deserializeOpModifyVpnTunnelOptions) ID() string { +func (*awsEc2query_deserializeOpModifyVpcPeeringConnectionOptions) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpModifyVpnTunnelOptions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyVpcPeeringConnectionOptions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -36229,9 +36138,9 @@ func (m *awsEc2query_deserializeOpModifyVpnTunnelOptions) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorModifyVpnTunnelOptions(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyVpcPeeringConnectionOptions(response, &metadata) } - output := &ModifyVpnTunnelOptionsOutput{} + output := &ModifyVpcPeeringConnectionOptionsOutput{} out.Result = output var buff [1024]byte @@ -36252,7 +36161,7 @@ func (m *awsEc2query_deserializeOpModifyVpnTunnelOptions) HandleDeserialize(ctx } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentModifyVpnTunnelOptionsOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyVpcPeeringConnectionOptionsOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -36266,7 +36175,7 @@ func (m *awsEc2query_deserializeOpModifyVpnTunnelOptions) HandleDeserialize(ctx return out, metadata, err } -func awsEc2query_deserializeOpErrorModifyVpnTunnelOptions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyVpcPeeringConnectionOptions(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -36299,14 +36208,14 @@ func awsEc2query_deserializeOpErrorModifyVpnTunnelOptions(response *smithyhttp.R } } -type awsEc2query_deserializeOpMonitorInstances struct { +type awsEc2query_deserializeOpModifyVpcTenancy struct { } -func (*awsEc2query_deserializeOpMonitorInstances) ID() string { +func (*awsEc2query_deserializeOpModifyVpcTenancy) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpMonitorInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyVpcTenancy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -36320,9 +36229,9 @@ func (m *awsEc2query_deserializeOpMonitorInstances) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorMonitorInstances(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyVpcTenancy(response, &metadata) } - output := &MonitorInstancesOutput{} + output := &ModifyVpcTenancyOutput{} out.Result = output var buff [1024]byte @@ -36343,7 +36252,7 @@ func (m *awsEc2query_deserializeOpMonitorInstances) HandleDeserialize(ctx contex } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentMonitorInstancesOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyVpcTenancyOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -36357,7 +36266,7 @@ func (m *awsEc2query_deserializeOpMonitorInstances) HandleDeserialize(ctx contex return out, metadata, err } -func awsEc2query_deserializeOpErrorMonitorInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyVpcTenancy(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -36390,14 +36299,14 @@ func awsEc2query_deserializeOpErrorMonitorInstances(response *smithyhttp.Respons } } -type awsEc2query_deserializeOpMoveAddressToVpc struct { +type awsEc2query_deserializeOpModifyVpnConnection struct { } -func (*awsEc2query_deserializeOpMoveAddressToVpc) ID() string { +func (*awsEc2query_deserializeOpModifyVpnConnection) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpMoveAddressToVpc) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyVpnConnection) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -36411,9 +36320,9 @@ func (m *awsEc2query_deserializeOpMoveAddressToVpc) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorMoveAddressToVpc(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyVpnConnection(response, &metadata) } - output := &MoveAddressToVpcOutput{} + output := &ModifyVpnConnectionOutput{} out.Result = output var buff [1024]byte @@ -36434,7 +36343,7 @@ func (m *awsEc2query_deserializeOpMoveAddressToVpc) HandleDeserialize(ctx contex } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentMoveAddressToVpcOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyVpnConnectionOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -36448,7 +36357,7 @@ func (m *awsEc2query_deserializeOpMoveAddressToVpc) HandleDeserialize(ctx contex return out, metadata, err } -func awsEc2query_deserializeOpErrorMoveAddressToVpc(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyVpnConnection(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -36481,14 +36390,14 @@ func awsEc2query_deserializeOpErrorMoveAddressToVpc(response *smithyhttp.Respons } } -type awsEc2query_deserializeOpProvisionByoipCidr struct { +type awsEc2query_deserializeOpModifyVpnConnectionOptions struct { } -func (*awsEc2query_deserializeOpProvisionByoipCidr) ID() string { +func (*awsEc2query_deserializeOpModifyVpnConnectionOptions) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpProvisionByoipCidr) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyVpnConnectionOptions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -36502,9 +36411,9 @@ func (m *awsEc2query_deserializeOpProvisionByoipCidr) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorProvisionByoipCidr(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyVpnConnectionOptions(response, &metadata) } - output := &ProvisionByoipCidrOutput{} + output := &ModifyVpnConnectionOptionsOutput{} out.Result = output var buff [1024]byte @@ -36525,7 +36434,7 @@ func (m *awsEc2query_deserializeOpProvisionByoipCidr) HandleDeserialize(ctx cont } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentProvisionByoipCidrOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyVpnConnectionOptionsOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -36539,7 +36448,7 @@ func (m *awsEc2query_deserializeOpProvisionByoipCidr) HandleDeserialize(ctx cont return out, metadata, err } -func awsEc2query_deserializeOpErrorProvisionByoipCidr(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyVpnConnectionOptions(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -36572,14 +36481,14 @@ func awsEc2query_deserializeOpErrorProvisionByoipCidr(response *smithyhttp.Respo } } -type awsEc2query_deserializeOpPurchaseHostReservation struct { +type awsEc2query_deserializeOpModifyVpnTunnelCertificate struct { } -func (*awsEc2query_deserializeOpPurchaseHostReservation) ID() string { +func (*awsEc2query_deserializeOpModifyVpnTunnelCertificate) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpPurchaseHostReservation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyVpnTunnelCertificate) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -36593,9 +36502,9 @@ func (m *awsEc2query_deserializeOpPurchaseHostReservation) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorPurchaseHostReservation(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyVpnTunnelCertificate(response, &metadata) } - output := &PurchaseHostReservationOutput{} + output := &ModifyVpnTunnelCertificateOutput{} out.Result = output var buff [1024]byte @@ -36616,7 +36525,7 @@ func (m *awsEc2query_deserializeOpPurchaseHostReservation) HandleDeserialize(ctx } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentPurchaseHostReservationOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyVpnTunnelCertificateOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -36630,7 +36539,7 @@ func (m *awsEc2query_deserializeOpPurchaseHostReservation) HandleDeserialize(ctx return out, metadata, err } -func awsEc2query_deserializeOpErrorPurchaseHostReservation(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyVpnTunnelCertificate(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -36663,14 +36572,14 @@ func awsEc2query_deserializeOpErrorPurchaseHostReservation(response *smithyhttp. } } -type awsEc2query_deserializeOpPurchaseReservedInstancesOffering struct { +type awsEc2query_deserializeOpModifyVpnTunnelOptions struct { } -func (*awsEc2query_deserializeOpPurchaseReservedInstancesOffering) ID() string { +func (*awsEc2query_deserializeOpModifyVpnTunnelOptions) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpPurchaseReservedInstancesOffering) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpModifyVpnTunnelOptions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -36684,9 +36593,9 @@ func (m *awsEc2query_deserializeOpPurchaseReservedInstancesOffering) HandleDeser } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorPurchaseReservedInstancesOffering(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorModifyVpnTunnelOptions(response, &metadata) } - output := &PurchaseReservedInstancesOfferingOutput{} + output := &ModifyVpnTunnelOptionsOutput{} out.Result = output var buff [1024]byte @@ -36707,7 +36616,7 @@ func (m *awsEc2query_deserializeOpPurchaseReservedInstancesOffering) HandleDeser } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentPurchaseReservedInstancesOfferingOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentModifyVpnTunnelOptionsOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -36721,7 +36630,7 @@ func (m *awsEc2query_deserializeOpPurchaseReservedInstancesOffering) HandleDeser return out, metadata, err } -func awsEc2query_deserializeOpErrorPurchaseReservedInstancesOffering(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorModifyVpnTunnelOptions(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -36754,14 +36663,14 @@ func awsEc2query_deserializeOpErrorPurchaseReservedInstancesOffering(response *s } } -type awsEc2query_deserializeOpPurchaseScheduledInstances struct { +type awsEc2query_deserializeOpMonitorInstances struct { } -func (*awsEc2query_deserializeOpPurchaseScheduledInstances) ID() string { +func (*awsEc2query_deserializeOpMonitorInstances) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpPurchaseScheduledInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpMonitorInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -36775,9 +36684,9 @@ func (m *awsEc2query_deserializeOpPurchaseScheduledInstances) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorPurchaseScheduledInstances(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorMonitorInstances(response, &metadata) } - output := &PurchaseScheduledInstancesOutput{} + output := &MonitorInstancesOutput{} out.Result = output var buff [1024]byte @@ -36798,7 +36707,7 @@ func (m *awsEc2query_deserializeOpPurchaseScheduledInstances) HandleDeserialize( } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentPurchaseScheduledInstancesOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentMonitorInstancesOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -36812,7 +36721,7 @@ func (m *awsEc2query_deserializeOpPurchaseScheduledInstances) HandleDeserialize( return out, metadata, err } -func awsEc2query_deserializeOpErrorPurchaseScheduledInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorMonitorInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -36845,14 +36754,14 @@ func awsEc2query_deserializeOpErrorPurchaseScheduledInstances(response *smithyht } } -type awsEc2query_deserializeOpRebootInstances struct { +type awsEc2query_deserializeOpMoveAddressToVpc struct { } -func (*awsEc2query_deserializeOpRebootInstances) ID() string { +func (*awsEc2query_deserializeOpMoveAddressToVpc) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpRebootInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpMoveAddressToVpc) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -36866,21 +36775,44 @@ func (m *awsEc2query_deserializeOpRebootInstances) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorRebootInstances(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorMoveAddressToVpc(response, &metadata) } - output := &RebootInstancesOutput{} + output := &MoveAddressToVpcOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), } } + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsEc2query_deserializeOpDocumentMoveAddressToVpcOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + return out, metadata, err } -func awsEc2query_deserializeOpErrorRebootInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorMoveAddressToVpc(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -36913,14 +36845,14 @@ func awsEc2query_deserializeOpErrorRebootInstances(response *smithyhttp.Response } } -type awsEc2query_deserializeOpRegisterImage struct { +type awsEc2query_deserializeOpProvisionByoipCidr struct { } -func (*awsEc2query_deserializeOpRegisterImage) ID() string { +func (*awsEc2query_deserializeOpProvisionByoipCidr) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpRegisterImage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpProvisionByoipCidr) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -36934,9 +36866,9 @@ func (m *awsEc2query_deserializeOpRegisterImage) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorRegisterImage(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorProvisionByoipCidr(response, &metadata) } - output := &RegisterImageOutput{} + output := &ProvisionByoipCidrOutput{} out.Result = output var buff [1024]byte @@ -36957,7 +36889,7 @@ func (m *awsEc2query_deserializeOpRegisterImage) HandleDeserialize(ctx context.C } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentRegisterImageOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentProvisionByoipCidrOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -36971,7 +36903,7 @@ func (m *awsEc2query_deserializeOpRegisterImage) HandleDeserialize(ctx context.C return out, metadata, err } -func awsEc2query_deserializeOpErrorRegisterImage(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorProvisionByoipCidr(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -37004,14 +36936,14 @@ func awsEc2query_deserializeOpErrorRegisterImage(response *smithyhttp.Response, } } -type awsEc2query_deserializeOpRegisterInstanceEventNotificationAttributes struct { +type awsEc2query_deserializeOpPurchaseHostReservation struct { } -func (*awsEc2query_deserializeOpRegisterInstanceEventNotificationAttributes) ID() string { +func (*awsEc2query_deserializeOpPurchaseHostReservation) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpRegisterInstanceEventNotificationAttributes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpPurchaseHostReservation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -37025,9 +36957,9 @@ func (m *awsEc2query_deserializeOpRegisterInstanceEventNotificationAttributes) H } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorRegisterInstanceEventNotificationAttributes(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorPurchaseHostReservation(response, &metadata) } - output := &RegisterInstanceEventNotificationAttributesOutput{} + output := &PurchaseHostReservationOutput{} out.Result = output var buff [1024]byte @@ -37048,7 +36980,7 @@ func (m *awsEc2query_deserializeOpRegisterInstanceEventNotificationAttributes) H } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentRegisterInstanceEventNotificationAttributesOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentPurchaseHostReservationOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -37062,7 +36994,7 @@ func (m *awsEc2query_deserializeOpRegisterInstanceEventNotificationAttributes) H return out, metadata, err } -func awsEc2query_deserializeOpErrorRegisterInstanceEventNotificationAttributes(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorPurchaseHostReservation(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -37095,14 +37027,14 @@ func awsEc2query_deserializeOpErrorRegisterInstanceEventNotificationAttributes(r } } -type awsEc2query_deserializeOpRegisterTransitGatewayMulticastGroupMembers struct { +type awsEc2query_deserializeOpPurchaseReservedInstancesOffering struct { } -func (*awsEc2query_deserializeOpRegisterTransitGatewayMulticastGroupMembers) ID() string { +func (*awsEc2query_deserializeOpPurchaseReservedInstancesOffering) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpRegisterTransitGatewayMulticastGroupMembers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpPurchaseReservedInstancesOffering) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -37116,9 +37048,9 @@ func (m *awsEc2query_deserializeOpRegisterTransitGatewayMulticastGroupMembers) H } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorRegisterTransitGatewayMulticastGroupMembers(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorPurchaseReservedInstancesOffering(response, &metadata) } - output := &RegisterTransitGatewayMulticastGroupMembersOutput{} + output := &PurchaseReservedInstancesOfferingOutput{} out.Result = output var buff [1024]byte @@ -37139,7 +37071,7 @@ func (m *awsEc2query_deserializeOpRegisterTransitGatewayMulticastGroupMembers) H } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentRegisterTransitGatewayMulticastGroupMembersOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentPurchaseReservedInstancesOfferingOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -37153,7 +37085,7 @@ func (m *awsEc2query_deserializeOpRegisterTransitGatewayMulticastGroupMembers) H return out, metadata, err } -func awsEc2query_deserializeOpErrorRegisterTransitGatewayMulticastGroupMembers(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorPurchaseReservedInstancesOffering(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -37186,14 +37118,14 @@ func awsEc2query_deserializeOpErrorRegisterTransitGatewayMulticastGroupMembers(r } } -type awsEc2query_deserializeOpRegisterTransitGatewayMulticastGroupSources struct { +type awsEc2query_deserializeOpPurchaseScheduledInstances struct { } -func (*awsEc2query_deserializeOpRegisterTransitGatewayMulticastGroupSources) ID() string { +func (*awsEc2query_deserializeOpPurchaseScheduledInstances) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpRegisterTransitGatewayMulticastGroupSources) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpPurchaseScheduledInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -37207,9 +37139,9 @@ func (m *awsEc2query_deserializeOpRegisterTransitGatewayMulticastGroupSources) H } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorRegisterTransitGatewayMulticastGroupSources(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorPurchaseScheduledInstances(response, &metadata) } - output := &RegisterTransitGatewayMulticastGroupSourcesOutput{} + output := &PurchaseScheduledInstancesOutput{} out.Result = output var buff [1024]byte @@ -37230,7 +37162,7 @@ func (m *awsEc2query_deserializeOpRegisterTransitGatewayMulticastGroupSources) H } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentRegisterTransitGatewayMulticastGroupSourcesOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentPurchaseScheduledInstancesOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -37244,7 +37176,7 @@ func (m *awsEc2query_deserializeOpRegisterTransitGatewayMulticastGroupSources) H return out, metadata, err } -func awsEc2query_deserializeOpErrorRegisterTransitGatewayMulticastGroupSources(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorPurchaseScheduledInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -37277,14 +37209,14 @@ func awsEc2query_deserializeOpErrorRegisterTransitGatewayMulticastGroupSources(r } } -type awsEc2query_deserializeOpRejectTransitGatewayMulticastDomainAssociations struct { +type awsEc2query_deserializeOpRebootInstances struct { } -func (*awsEc2query_deserializeOpRejectTransitGatewayMulticastDomainAssociations) ID() string { +func (*awsEc2query_deserializeOpRebootInstances) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpRejectTransitGatewayMulticastDomainAssociations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpRebootInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -37298,44 +37230,21 @@ func (m *awsEc2query_deserializeOpRejectTransitGatewayMulticastDomainAssociation } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorRejectTransitGatewayMulticastDomainAssociations(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorRebootInstances(response, &metadata) } - output := &RejectTransitGatewayMulticastDomainAssociationsOutput{} + output := &RebootInstancesOutput{} out.Result = output - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(response.Body, ringBuffer) - rootDecoder := xml.NewDecoder(body) - t, err := smithyxml.FetchRootElement(rootDecoder) - if err == io.EOF { - return out, metadata, nil - } - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - } - - decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentRejectTransitGatewayMulticastDomainAssociationsOutput(&output, decoder) - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + Err: fmt.Errorf("failed to discard response body, %w", err), } - return out, metadata, err } return out, metadata, err } -func awsEc2query_deserializeOpErrorRejectTransitGatewayMulticastDomainAssociations(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorRebootInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -37368,14 +37277,14 @@ func awsEc2query_deserializeOpErrorRejectTransitGatewayMulticastDomainAssociatio } } -type awsEc2query_deserializeOpRejectTransitGatewayPeeringAttachment struct { +type awsEc2query_deserializeOpRegisterImage struct { } -func (*awsEc2query_deserializeOpRejectTransitGatewayPeeringAttachment) ID() string { +func (*awsEc2query_deserializeOpRegisterImage) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpRejectTransitGatewayPeeringAttachment) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpRegisterImage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -37389,9 +37298,9 @@ func (m *awsEc2query_deserializeOpRejectTransitGatewayPeeringAttachment) HandleD } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorRejectTransitGatewayPeeringAttachment(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorRegisterImage(response, &metadata) } - output := &RejectTransitGatewayPeeringAttachmentOutput{} + output := &RegisterImageOutput{} out.Result = output var buff [1024]byte @@ -37412,7 +37321,7 @@ func (m *awsEc2query_deserializeOpRejectTransitGatewayPeeringAttachment) HandleD } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentRejectTransitGatewayPeeringAttachmentOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentRegisterImageOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -37426,7 +37335,7 @@ func (m *awsEc2query_deserializeOpRejectTransitGatewayPeeringAttachment) HandleD return out, metadata, err } -func awsEc2query_deserializeOpErrorRejectTransitGatewayPeeringAttachment(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorRegisterImage(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -37459,14 +37368,14 @@ func awsEc2query_deserializeOpErrorRejectTransitGatewayPeeringAttachment(respons } } -type awsEc2query_deserializeOpRejectTransitGatewayVpcAttachment struct { +type awsEc2query_deserializeOpRegisterInstanceEventNotificationAttributes struct { } -func (*awsEc2query_deserializeOpRejectTransitGatewayVpcAttachment) ID() string { +func (*awsEc2query_deserializeOpRegisterInstanceEventNotificationAttributes) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpRejectTransitGatewayVpcAttachment) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpRegisterInstanceEventNotificationAttributes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -37480,9 +37389,9 @@ func (m *awsEc2query_deserializeOpRejectTransitGatewayVpcAttachment) HandleDeser } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorRejectTransitGatewayVpcAttachment(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorRegisterInstanceEventNotificationAttributes(response, &metadata) } - output := &RejectTransitGatewayVpcAttachmentOutput{} + output := &RegisterInstanceEventNotificationAttributesOutput{} out.Result = output var buff [1024]byte @@ -37503,7 +37412,7 @@ func (m *awsEc2query_deserializeOpRejectTransitGatewayVpcAttachment) HandleDeser } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentRejectTransitGatewayVpcAttachmentOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentRegisterInstanceEventNotificationAttributesOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -37517,7 +37426,7 @@ func (m *awsEc2query_deserializeOpRejectTransitGatewayVpcAttachment) HandleDeser return out, metadata, err } -func awsEc2query_deserializeOpErrorRejectTransitGatewayVpcAttachment(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorRegisterInstanceEventNotificationAttributes(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -37550,14 +37459,14 @@ func awsEc2query_deserializeOpErrorRejectTransitGatewayVpcAttachment(response *s } } -type awsEc2query_deserializeOpRejectVpcEndpointConnections struct { +type awsEc2query_deserializeOpRegisterTransitGatewayMulticastGroupMembers struct { } -func (*awsEc2query_deserializeOpRejectVpcEndpointConnections) ID() string { +func (*awsEc2query_deserializeOpRegisterTransitGatewayMulticastGroupMembers) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpRejectVpcEndpointConnections) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpRegisterTransitGatewayMulticastGroupMembers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -37571,9 +37480,9 @@ func (m *awsEc2query_deserializeOpRejectVpcEndpointConnections) HandleDeserializ } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorRejectVpcEndpointConnections(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorRegisterTransitGatewayMulticastGroupMembers(response, &metadata) } - output := &RejectVpcEndpointConnectionsOutput{} + output := &RegisterTransitGatewayMulticastGroupMembersOutput{} out.Result = output var buff [1024]byte @@ -37594,7 +37503,7 @@ func (m *awsEc2query_deserializeOpRejectVpcEndpointConnections) HandleDeserializ } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentRejectVpcEndpointConnectionsOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentRegisterTransitGatewayMulticastGroupMembersOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -37608,7 +37517,7 @@ func (m *awsEc2query_deserializeOpRejectVpcEndpointConnections) HandleDeserializ return out, metadata, err } -func awsEc2query_deserializeOpErrorRejectVpcEndpointConnections(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorRegisterTransitGatewayMulticastGroupMembers(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -37641,14 +37550,14 @@ func awsEc2query_deserializeOpErrorRejectVpcEndpointConnections(response *smithy } } -type awsEc2query_deserializeOpRejectVpcPeeringConnection struct { +type awsEc2query_deserializeOpRegisterTransitGatewayMulticastGroupSources struct { } -func (*awsEc2query_deserializeOpRejectVpcPeeringConnection) ID() string { +func (*awsEc2query_deserializeOpRegisterTransitGatewayMulticastGroupSources) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpRejectVpcPeeringConnection) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpRegisterTransitGatewayMulticastGroupSources) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -37662,9 +37571,9 @@ func (m *awsEc2query_deserializeOpRejectVpcPeeringConnection) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorRejectVpcPeeringConnection(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorRegisterTransitGatewayMulticastGroupSources(response, &metadata) } - output := &RejectVpcPeeringConnectionOutput{} + output := &RegisterTransitGatewayMulticastGroupSourcesOutput{} out.Result = output var buff [1024]byte @@ -37685,7 +37594,7 @@ func (m *awsEc2query_deserializeOpRejectVpcPeeringConnection) HandleDeserialize( } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentRejectVpcPeeringConnectionOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentRegisterTransitGatewayMulticastGroupSourcesOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -37699,7 +37608,7 @@ func (m *awsEc2query_deserializeOpRejectVpcPeeringConnection) HandleDeserialize( return out, metadata, err } -func awsEc2query_deserializeOpErrorRejectVpcPeeringConnection(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorRegisterTransitGatewayMulticastGroupSources(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -37732,14 +37641,14 @@ func awsEc2query_deserializeOpErrorRejectVpcPeeringConnection(response *smithyht } } -type awsEc2query_deserializeOpReleaseAddress struct { +type awsEc2query_deserializeOpRejectTransitGatewayMulticastDomainAssociations struct { } -func (*awsEc2query_deserializeOpReleaseAddress) ID() string { +func (*awsEc2query_deserializeOpRejectTransitGatewayMulticastDomainAssociations) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpReleaseAddress) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpRejectTransitGatewayMulticastDomainAssociations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -37753,21 +37662,44 @@ func (m *awsEc2query_deserializeOpReleaseAddress) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorReleaseAddress(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorRejectTransitGatewayMulticastDomainAssociations(response, &metadata) } - output := &ReleaseAddressOutput{} + output := &RejectTransitGatewayMulticastDomainAssociationsOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsEc2query_deserializeOpDocumentRejectTransitGatewayMulticastDomainAssociationsOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), } + return out, metadata, err } return out, metadata, err } -func awsEc2query_deserializeOpErrorReleaseAddress(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorRejectTransitGatewayMulticastDomainAssociations(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -37800,14 +37732,14 @@ func awsEc2query_deserializeOpErrorReleaseAddress(response *smithyhttp.Response, } } -type awsEc2query_deserializeOpReleaseHosts struct { +type awsEc2query_deserializeOpRejectTransitGatewayPeeringAttachment struct { } -func (*awsEc2query_deserializeOpReleaseHosts) ID() string { +func (*awsEc2query_deserializeOpRejectTransitGatewayPeeringAttachment) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpReleaseHosts) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpRejectTransitGatewayPeeringAttachment) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -37821,9 +37753,9 @@ func (m *awsEc2query_deserializeOpReleaseHosts) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorReleaseHosts(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorRejectTransitGatewayPeeringAttachment(response, &metadata) } - output := &ReleaseHostsOutput{} + output := &RejectTransitGatewayPeeringAttachmentOutput{} out.Result = output var buff [1024]byte @@ -37844,7 +37776,7 @@ func (m *awsEc2query_deserializeOpReleaseHosts) HandleDeserialize(ctx context.Co } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentReleaseHostsOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentRejectTransitGatewayPeeringAttachmentOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -37858,7 +37790,7 @@ func (m *awsEc2query_deserializeOpReleaseHosts) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsEc2query_deserializeOpErrorReleaseHosts(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorRejectTransitGatewayPeeringAttachment(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -37891,14 +37823,14 @@ func awsEc2query_deserializeOpErrorReleaseHosts(response *smithyhttp.Response, m } } -type awsEc2query_deserializeOpReplaceIamInstanceProfileAssociation struct { +type awsEc2query_deserializeOpRejectTransitGatewayVpcAttachment struct { } -func (*awsEc2query_deserializeOpReplaceIamInstanceProfileAssociation) ID() string { +func (*awsEc2query_deserializeOpRejectTransitGatewayVpcAttachment) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpReplaceIamInstanceProfileAssociation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpRejectTransitGatewayVpcAttachment) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -37912,9 +37844,9 @@ func (m *awsEc2query_deserializeOpReplaceIamInstanceProfileAssociation) HandleDe } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorReplaceIamInstanceProfileAssociation(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorRejectTransitGatewayVpcAttachment(response, &metadata) } - output := &ReplaceIamInstanceProfileAssociationOutput{} + output := &RejectTransitGatewayVpcAttachmentOutput{} out.Result = output var buff [1024]byte @@ -37935,7 +37867,7 @@ func (m *awsEc2query_deserializeOpReplaceIamInstanceProfileAssociation) HandleDe } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentReplaceIamInstanceProfileAssociationOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentRejectTransitGatewayVpcAttachmentOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -37949,7 +37881,7 @@ func (m *awsEc2query_deserializeOpReplaceIamInstanceProfileAssociation) HandleDe return out, metadata, err } -func awsEc2query_deserializeOpErrorReplaceIamInstanceProfileAssociation(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorRejectTransitGatewayVpcAttachment(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -37982,14 +37914,14 @@ func awsEc2query_deserializeOpErrorReplaceIamInstanceProfileAssociation(response } } -type awsEc2query_deserializeOpReplaceNetworkAclAssociation struct { +type awsEc2query_deserializeOpRejectVpcEndpointConnections struct { } -func (*awsEc2query_deserializeOpReplaceNetworkAclAssociation) ID() string { +func (*awsEc2query_deserializeOpRejectVpcEndpointConnections) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpReplaceNetworkAclAssociation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpRejectVpcEndpointConnections) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -38003,9 +37935,9 @@ func (m *awsEc2query_deserializeOpReplaceNetworkAclAssociation) HandleDeserializ } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorReplaceNetworkAclAssociation(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorRejectVpcEndpointConnections(response, &metadata) } - output := &ReplaceNetworkAclAssociationOutput{} + output := &RejectVpcEndpointConnectionsOutput{} out.Result = output var buff [1024]byte @@ -38026,7 +37958,7 @@ func (m *awsEc2query_deserializeOpReplaceNetworkAclAssociation) HandleDeserializ } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentReplaceNetworkAclAssociationOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentRejectVpcEndpointConnectionsOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -38040,7 +37972,7 @@ func (m *awsEc2query_deserializeOpReplaceNetworkAclAssociation) HandleDeserializ return out, metadata, err } -func awsEc2query_deserializeOpErrorReplaceNetworkAclAssociation(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorRejectVpcEndpointConnections(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -38073,14 +38005,14 @@ func awsEc2query_deserializeOpErrorReplaceNetworkAclAssociation(response *smithy } } -type awsEc2query_deserializeOpReplaceNetworkAclEntry struct { +type awsEc2query_deserializeOpRejectVpcPeeringConnection struct { } -func (*awsEc2query_deserializeOpReplaceNetworkAclEntry) ID() string { +func (*awsEc2query_deserializeOpRejectVpcPeeringConnection) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpReplaceNetworkAclEntry) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpRejectVpcPeeringConnection) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -38094,21 +38026,44 @@ func (m *awsEc2query_deserializeOpReplaceNetworkAclEntry) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorReplaceNetworkAclEntry(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorRejectVpcPeeringConnection(response, &metadata) } - output := &ReplaceNetworkAclEntryOutput{} + output := &RejectVpcPeeringConnectionOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsEc2query_deserializeOpDocumentRejectVpcPeeringConnectionOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), } + return out, metadata, err } return out, metadata, err } -func awsEc2query_deserializeOpErrorReplaceNetworkAclEntry(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorRejectVpcPeeringConnection(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -38141,14 +38096,14 @@ func awsEc2query_deserializeOpErrorReplaceNetworkAclEntry(response *smithyhttp.R } } -type awsEc2query_deserializeOpReplaceRoute struct { +type awsEc2query_deserializeOpReleaseAddress struct { } -func (*awsEc2query_deserializeOpReplaceRoute) ID() string { +func (*awsEc2query_deserializeOpReleaseAddress) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpReplaceRoute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpReleaseAddress) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -38162,9 +38117,9 @@ func (m *awsEc2query_deserializeOpReplaceRoute) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorReplaceRoute(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorReleaseAddress(response, &metadata) } - output := &ReplaceRouteOutput{} + output := &ReleaseAddressOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -38176,7 +38131,7 @@ func (m *awsEc2query_deserializeOpReplaceRoute) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsEc2query_deserializeOpErrorReplaceRoute(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorReleaseAddress(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -38209,14 +38164,14 @@ func awsEc2query_deserializeOpErrorReplaceRoute(response *smithyhttp.Response, m } } -type awsEc2query_deserializeOpReplaceRouteTableAssociation struct { +type awsEc2query_deserializeOpReleaseHosts struct { } -func (*awsEc2query_deserializeOpReplaceRouteTableAssociation) ID() string { +func (*awsEc2query_deserializeOpReleaseHosts) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpReplaceRouteTableAssociation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpReleaseHosts) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -38230,9 +38185,9 @@ func (m *awsEc2query_deserializeOpReplaceRouteTableAssociation) HandleDeserializ } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorReplaceRouteTableAssociation(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorReleaseHosts(response, &metadata) } - output := &ReplaceRouteTableAssociationOutput{} + output := &ReleaseHostsOutput{} out.Result = output var buff [1024]byte @@ -38253,7 +38208,7 @@ func (m *awsEc2query_deserializeOpReplaceRouteTableAssociation) HandleDeserializ } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentReplaceRouteTableAssociationOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentReleaseHostsOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -38267,7 +38222,7 @@ func (m *awsEc2query_deserializeOpReplaceRouteTableAssociation) HandleDeserializ return out, metadata, err } -func awsEc2query_deserializeOpErrorReplaceRouteTableAssociation(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorReleaseHosts(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -38300,14 +38255,14 @@ func awsEc2query_deserializeOpErrorReplaceRouteTableAssociation(response *smithy } } -type awsEc2query_deserializeOpReplaceTransitGatewayRoute struct { +type awsEc2query_deserializeOpReplaceIamInstanceProfileAssociation struct { } -func (*awsEc2query_deserializeOpReplaceTransitGatewayRoute) ID() string { +func (*awsEc2query_deserializeOpReplaceIamInstanceProfileAssociation) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpReplaceTransitGatewayRoute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpReplaceIamInstanceProfileAssociation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -38321,9 +38276,9 @@ func (m *awsEc2query_deserializeOpReplaceTransitGatewayRoute) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorReplaceTransitGatewayRoute(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorReplaceIamInstanceProfileAssociation(response, &metadata) } - output := &ReplaceTransitGatewayRouteOutput{} + output := &ReplaceIamInstanceProfileAssociationOutput{} out.Result = output var buff [1024]byte @@ -38344,7 +38299,7 @@ func (m *awsEc2query_deserializeOpReplaceTransitGatewayRoute) HandleDeserialize( } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentReplaceTransitGatewayRouteOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentReplaceIamInstanceProfileAssociationOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -38358,7 +38313,7 @@ func (m *awsEc2query_deserializeOpReplaceTransitGatewayRoute) HandleDeserialize( return out, metadata, err } -func awsEc2query_deserializeOpErrorReplaceTransitGatewayRoute(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorReplaceIamInstanceProfileAssociation(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -38391,14 +38346,14 @@ func awsEc2query_deserializeOpErrorReplaceTransitGatewayRoute(response *smithyht } } -type awsEc2query_deserializeOpReportInstanceStatus struct { +type awsEc2query_deserializeOpReplaceNetworkAclAssociation struct { } -func (*awsEc2query_deserializeOpReportInstanceStatus) ID() string { +func (*awsEc2query_deserializeOpReplaceNetworkAclAssociation) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpReportInstanceStatus) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpReplaceNetworkAclAssociation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -38412,21 +38367,44 @@ func (m *awsEc2query_deserializeOpReportInstanceStatus) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorReportInstanceStatus(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorReplaceNetworkAclAssociation(response, &metadata) } - output := &ReportInstanceStatusOutput{} + output := &ReplaceNetworkAclAssociationOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), } } + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsEc2query_deserializeOpDocumentReplaceNetworkAclAssociationOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + return out, metadata, err } -func awsEc2query_deserializeOpErrorReportInstanceStatus(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorReplaceNetworkAclAssociation(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -38459,14 +38437,14 @@ func awsEc2query_deserializeOpErrorReportInstanceStatus(response *smithyhttp.Res } } -type awsEc2query_deserializeOpRequestSpotFleet struct { +type awsEc2query_deserializeOpReplaceNetworkAclEntry struct { } -func (*awsEc2query_deserializeOpRequestSpotFleet) ID() string { +func (*awsEc2query_deserializeOpReplaceNetworkAclEntry) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpRequestSpotFleet) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpReplaceNetworkAclEntry) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -38480,44 +38458,89 @@ func (m *awsEc2query_deserializeOpRequestSpotFleet) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorRequestSpotFleet(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorReplaceNetworkAclEntry(response, &metadata) } - output := &RequestSpotFleetOutput{} + output := &ReplaceNetworkAclEntryOutput{} out.Result = output - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(response.Body, ringBuffer) - rootDecoder := xml.NewDecoder(body) - t, err := smithyxml.FetchRootElement(rootDecoder) - if err == io.EOF { - return out, metadata, nil - } - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + Err: fmt.Errorf("failed to discard response body, %w", err), } } - decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentRequestSpotFleetOutput(&output, decoder) + return out, metadata, err +} + +func awsEc2query_deserializeOpErrorReplaceNetworkAclEntry(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + errorComponents, err := ec2query.GetErrorResponseComponents(errorBody) if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + return err + } + awsmiddleware.SetRequestIDMetadata(metadata, errorComponents.RequestID) + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, } + return genericError + + } +} + +type awsEc2query_deserializeOpReplaceRoute struct { +} + +func (*awsEc2query_deserializeOpReplaceRoute) ID() string { + return "OperationDeserializer" +} + +func (m *awsEc2query_deserializeOpReplaceRoute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { return out, metadata, err } + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsEc2query_deserializeOpErrorReplaceRoute(response, &metadata) + } + output := &ReplaceRouteOutput{} + out.Result = output + + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + return out, metadata, err } -func awsEc2query_deserializeOpErrorRequestSpotFleet(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorReplaceRoute(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -38550,14 +38573,14 @@ func awsEc2query_deserializeOpErrorRequestSpotFleet(response *smithyhttp.Respons } } -type awsEc2query_deserializeOpRequestSpotInstances struct { +type awsEc2query_deserializeOpReplaceRouteTableAssociation struct { } -func (*awsEc2query_deserializeOpRequestSpotInstances) ID() string { +func (*awsEc2query_deserializeOpReplaceRouteTableAssociation) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpRequestSpotInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpReplaceRouteTableAssociation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -38571,9 +38594,9 @@ func (m *awsEc2query_deserializeOpRequestSpotInstances) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorRequestSpotInstances(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorReplaceRouteTableAssociation(response, &metadata) } - output := &RequestSpotInstancesOutput{} + output := &ReplaceRouteTableAssociationOutput{} out.Result = output var buff [1024]byte @@ -38594,7 +38617,7 @@ func (m *awsEc2query_deserializeOpRequestSpotInstances) HandleDeserialize(ctx co } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentRequestSpotInstancesOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentReplaceRouteTableAssociationOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -38608,7 +38631,7 @@ func (m *awsEc2query_deserializeOpRequestSpotInstances) HandleDeserialize(ctx co return out, metadata, err } -func awsEc2query_deserializeOpErrorRequestSpotInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorReplaceRouteTableAssociation(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -38641,14 +38664,14 @@ func awsEc2query_deserializeOpErrorRequestSpotInstances(response *smithyhttp.Res } } -type awsEc2query_deserializeOpResetAddressAttribute struct { +type awsEc2query_deserializeOpReplaceTransitGatewayRoute struct { } -func (*awsEc2query_deserializeOpResetAddressAttribute) ID() string { +func (*awsEc2query_deserializeOpReplaceTransitGatewayRoute) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpResetAddressAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpReplaceTransitGatewayRoute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -38662,9 +38685,9 @@ func (m *awsEc2query_deserializeOpResetAddressAttribute) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorResetAddressAttribute(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorReplaceTransitGatewayRoute(response, &metadata) } - output := &ResetAddressAttributeOutput{} + output := &ReplaceTransitGatewayRouteOutput{} out.Result = output var buff [1024]byte @@ -38685,7 +38708,7 @@ func (m *awsEc2query_deserializeOpResetAddressAttribute) HandleDeserialize(ctx c } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentResetAddressAttributeOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentReplaceTransitGatewayRouteOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -38699,7 +38722,7 @@ func (m *awsEc2query_deserializeOpResetAddressAttribute) HandleDeserialize(ctx c return out, metadata, err } -func awsEc2query_deserializeOpErrorResetAddressAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorReplaceTransitGatewayRoute(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -38732,14 +38755,14 @@ func awsEc2query_deserializeOpErrorResetAddressAttribute(response *smithyhttp.Re } } -type awsEc2query_deserializeOpResetEbsDefaultKmsKeyId struct { +type awsEc2query_deserializeOpReportInstanceStatus struct { } -func (*awsEc2query_deserializeOpResetEbsDefaultKmsKeyId) ID() string { +func (*awsEc2query_deserializeOpReportInstanceStatus) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpResetEbsDefaultKmsKeyId) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpReportInstanceStatus) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -38753,9 +38776,77 @@ func (m *awsEc2query_deserializeOpResetEbsDefaultKmsKeyId) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorResetEbsDefaultKmsKeyId(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorReportInstanceStatus(response, &metadata) } - output := &ResetEbsDefaultKmsKeyIdOutput{} + output := &ReportInstanceStatusOutput{} + out.Result = output + + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + + return out, metadata, err +} + +func awsEc2query_deserializeOpErrorReportInstanceStatus(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + errorComponents, err := ec2query.GetErrorResponseComponents(errorBody) + if err != nil { + return err + } + awsmiddleware.SetRequestIDMetadata(metadata, errorComponents.RequestID) + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsEc2query_deserializeOpRequestSpotFleet struct { +} + +func (*awsEc2query_deserializeOpRequestSpotFleet) ID() string { + return "OperationDeserializer" +} + +func (m *awsEc2query_deserializeOpRequestSpotFleet) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsEc2query_deserializeOpErrorRequestSpotFleet(response, &metadata) + } + output := &RequestSpotFleetOutput{} out.Result = output var buff [1024]byte @@ -38776,7 +38867,7 @@ func (m *awsEc2query_deserializeOpResetEbsDefaultKmsKeyId) HandleDeserialize(ctx } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentResetEbsDefaultKmsKeyIdOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentRequestSpotFleetOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -38790,7 +38881,7 @@ func (m *awsEc2query_deserializeOpResetEbsDefaultKmsKeyId) HandleDeserialize(ctx return out, metadata, err } -func awsEc2query_deserializeOpErrorResetEbsDefaultKmsKeyId(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorRequestSpotFleet(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -38823,14 +38914,14 @@ func awsEc2query_deserializeOpErrorResetEbsDefaultKmsKeyId(response *smithyhttp. } } -type awsEc2query_deserializeOpResetFpgaImageAttribute struct { +type awsEc2query_deserializeOpRequestSpotInstances struct { } -func (*awsEc2query_deserializeOpResetFpgaImageAttribute) ID() string { +func (*awsEc2query_deserializeOpRequestSpotInstances) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpResetFpgaImageAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpRequestSpotInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -38844,9 +38935,9 @@ func (m *awsEc2query_deserializeOpResetFpgaImageAttribute) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorResetFpgaImageAttribute(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorRequestSpotInstances(response, &metadata) } - output := &ResetFpgaImageAttributeOutput{} + output := &RequestSpotInstancesOutput{} out.Result = output var buff [1024]byte @@ -38867,7 +38958,7 @@ func (m *awsEc2query_deserializeOpResetFpgaImageAttribute) HandleDeserialize(ctx } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentResetFpgaImageAttributeOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentRequestSpotInstancesOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -38881,7 +38972,7 @@ func (m *awsEc2query_deserializeOpResetFpgaImageAttribute) HandleDeserialize(ctx return out, metadata, err } -func awsEc2query_deserializeOpErrorResetFpgaImageAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorRequestSpotInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -38914,14 +39005,14 @@ func awsEc2query_deserializeOpErrorResetFpgaImageAttribute(response *smithyhttp. } } -type awsEc2query_deserializeOpResetImageAttribute struct { +type awsEc2query_deserializeOpResetAddressAttribute struct { } -func (*awsEc2query_deserializeOpResetImageAttribute) ID() string { +func (*awsEc2query_deserializeOpResetAddressAttribute) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpResetImageAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpResetAddressAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -38935,21 +39026,44 @@ func (m *awsEc2query_deserializeOpResetImageAttribute) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorResetImageAttribute(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorResetAddressAttribute(response, &metadata) } - output := &ResetImageAttributeOutput{} + output := &ResetAddressAttributeOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsEc2query_deserializeOpDocumentResetAddressAttributeOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), } + return out, metadata, err } return out, metadata, err } -func awsEc2query_deserializeOpErrorResetImageAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorResetAddressAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -38982,14 +39096,14 @@ func awsEc2query_deserializeOpErrorResetImageAttribute(response *smithyhttp.Resp } } -type awsEc2query_deserializeOpResetInstanceAttribute struct { +type awsEc2query_deserializeOpResetEbsDefaultKmsKeyId struct { } -func (*awsEc2query_deserializeOpResetInstanceAttribute) ID() string { +func (*awsEc2query_deserializeOpResetEbsDefaultKmsKeyId) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpResetInstanceAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpResetEbsDefaultKmsKeyId) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -39003,21 +39117,44 @@ func (m *awsEc2query_deserializeOpResetInstanceAttribute) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorResetInstanceAttribute(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorResetEbsDefaultKmsKeyId(response, &metadata) } - output := &ResetInstanceAttributeOutput{} + output := &ResetEbsDefaultKmsKeyIdOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsEc2query_deserializeOpDocumentResetEbsDefaultKmsKeyIdOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), } + return out, metadata, err } return out, metadata, err } -func awsEc2query_deserializeOpErrorResetInstanceAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorResetEbsDefaultKmsKeyId(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -39050,14 +39187,14 @@ func awsEc2query_deserializeOpErrorResetInstanceAttribute(response *smithyhttp.R } } -type awsEc2query_deserializeOpResetNetworkInterfaceAttribute struct { +type awsEc2query_deserializeOpResetFpgaImageAttribute struct { } -func (*awsEc2query_deserializeOpResetNetworkInterfaceAttribute) ID() string { +func (*awsEc2query_deserializeOpResetFpgaImageAttribute) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpResetNetworkInterfaceAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpResetFpgaImageAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -39071,21 +39208,44 @@ func (m *awsEc2query_deserializeOpResetNetworkInterfaceAttribute) HandleDeserial } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorResetNetworkInterfaceAttribute(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorResetFpgaImageAttribute(response, &metadata) } - output := &ResetNetworkInterfaceAttributeOutput{} + output := &ResetFpgaImageAttributeOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), } } + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsEc2query_deserializeOpDocumentResetFpgaImageAttributeOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + return out, metadata, err } -func awsEc2query_deserializeOpErrorResetNetworkInterfaceAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorResetFpgaImageAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -39118,14 +39278,14 @@ func awsEc2query_deserializeOpErrorResetNetworkInterfaceAttribute(response *smit } } -type awsEc2query_deserializeOpResetSnapshotAttribute struct { +type awsEc2query_deserializeOpResetImageAttribute struct { } -func (*awsEc2query_deserializeOpResetSnapshotAttribute) ID() string { +func (*awsEc2query_deserializeOpResetImageAttribute) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpResetSnapshotAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpResetImageAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -39139,9 +39299,9 @@ func (m *awsEc2query_deserializeOpResetSnapshotAttribute) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorResetSnapshotAttribute(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorResetImageAttribute(response, &metadata) } - output := &ResetSnapshotAttributeOutput{} + output := &ResetImageAttributeOutput{} out.Result = output if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { @@ -39153,7 +39313,7 @@ func (m *awsEc2query_deserializeOpResetSnapshotAttribute) HandleDeserialize(ctx return out, metadata, err } -func awsEc2query_deserializeOpErrorResetSnapshotAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorResetImageAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -39186,14 +39346,14 @@ func awsEc2query_deserializeOpErrorResetSnapshotAttribute(response *smithyhttp.R } } -type awsEc2query_deserializeOpRestoreAddressToClassic struct { +type awsEc2query_deserializeOpResetInstanceAttribute struct { } -func (*awsEc2query_deserializeOpRestoreAddressToClassic) ID() string { +func (*awsEc2query_deserializeOpResetInstanceAttribute) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpRestoreAddressToClassic) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpResetInstanceAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -39207,44 +39367,21 @@ func (m *awsEc2query_deserializeOpRestoreAddressToClassic) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorRestoreAddressToClassic(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorResetInstanceAttribute(response, &metadata) } - output := &RestoreAddressToClassicOutput{} + output := &ResetInstanceAttributeOutput{} out.Result = output - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(response.Body, ringBuffer) - rootDecoder := xml.NewDecoder(body) - t, err := smithyxml.FetchRootElement(rootDecoder) - if err == io.EOF { - return out, metadata, nil - } - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - } - - decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentRestoreAddressToClassicOutput(&output, decoder) - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + Err: fmt.Errorf("failed to discard response body, %w", err), } - return out, metadata, err } return out, metadata, err } -func awsEc2query_deserializeOpErrorRestoreAddressToClassic(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorResetInstanceAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -39277,14 +39414,14 @@ func awsEc2query_deserializeOpErrorRestoreAddressToClassic(response *smithyhttp. } } -type awsEc2query_deserializeOpRestoreManagedPrefixListVersion struct { +type awsEc2query_deserializeOpResetNetworkInterfaceAttribute struct { } -func (*awsEc2query_deserializeOpRestoreManagedPrefixListVersion) ID() string { +func (*awsEc2query_deserializeOpResetNetworkInterfaceAttribute) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpRestoreManagedPrefixListVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpResetNetworkInterfaceAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -39298,44 +39435,89 @@ func (m *awsEc2query_deserializeOpRestoreManagedPrefixListVersion) HandleDeseria } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorRestoreManagedPrefixListVersion(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorResetNetworkInterfaceAttribute(response, &metadata) } - output := &RestoreManagedPrefixListVersionOutput{} + output := &ResetNetworkInterfaceAttributeOutput{} out.Result = output - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(response.Body, ringBuffer) - rootDecoder := xml.NewDecoder(body) - t, err := smithyxml.FetchRootElement(rootDecoder) - if err == io.EOF { - return out, metadata, nil - } - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + Err: fmt.Errorf("failed to discard response body, %w", err), } } - decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentRestoreManagedPrefixListVersionOutput(&output, decoder) + return out, metadata, err +} + +func awsEc2query_deserializeOpErrorResetNetworkInterfaceAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + errorComponents, err := ec2query.GetErrorResponseComponents(errorBody) if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + return err + } + awsmiddleware.SetRequestIDMetadata(metadata, errorComponents.RequestID) + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, } + return genericError + + } +} + +type awsEc2query_deserializeOpResetSnapshotAttribute struct { +} + +func (*awsEc2query_deserializeOpResetSnapshotAttribute) ID() string { + return "OperationDeserializer" +} + +func (m *awsEc2query_deserializeOpResetSnapshotAttribute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { return out, metadata, err } + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsEc2query_deserializeOpErrorResetSnapshotAttribute(response, &metadata) + } + output := &ResetSnapshotAttributeOutput{} + out.Result = output + + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + return out, metadata, err } -func awsEc2query_deserializeOpErrorRestoreManagedPrefixListVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorResetSnapshotAttribute(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -39368,14 +39550,14 @@ func awsEc2query_deserializeOpErrorRestoreManagedPrefixListVersion(response *smi } } -type awsEc2query_deserializeOpRevokeClientVpnIngress struct { +type awsEc2query_deserializeOpRestoreAddressToClassic struct { } -func (*awsEc2query_deserializeOpRevokeClientVpnIngress) ID() string { +func (*awsEc2query_deserializeOpRestoreAddressToClassic) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpRevokeClientVpnIngress) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpRestoreAddressToClassic) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -39389,9 +39571,9 @@ func (m *awsEc2query_deserializeOpRevokeClientVpnIngress) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorRevokeClientVpnIngress(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorRestoreAddressToClassic(response, &metadata) } - output := &RevokeClientVpnIngressOutput{} + output := &RestoreAddressToClassicOutput{} out.Result = output var buff [1024]byte @@ -39412,7 +39594,7 @@ func (m *awsEc2query_deserializeOpRevokeClientVpnIngress) HandleDeserialize(ctx } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentRevokeClientVpnIngressOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentRestoreAddressToClassicOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -39426,7 +39608,7 @@ func (m *awsEc2query_deserializeOpRevokeClientVpnIngress) HandleDeserialize(ctx return out, metadata, err } -func awsEc2query_deserializeOpErrorRevokeClientVpnIngress(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorRestoreAddressToClassic(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -39459,14 +39641,14 @@ func awsEc2query_deserializeOpErrorRevokeClientVpnIngress(response *smithyhttp.R } } -type awsEc2query_deserializeOpRevokeSecurityGroupEgress struct { +type awsEc2query_deserializeOpRestoreManagedPrefixListVersion struct { } -func (*awsEc2query_deserializeOpRevokeSecurityGroupEgress) ID() string { +func (*awsEc2query_deserializeOpRestoreManagedPrefixListVersion) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpRevokeSecurityGroupEgress) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpRestoreManagedPrefixListVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -39480,9 +39662,9 @@ func (m *awsEc2query_deserializeOpRevokeSecurityGroupEgress) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorRevokeSecurityGroupEgress(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorRestoreManagedPrefixListVersion(response, &metadata) } - output := &RevokeSecurityGroupEgressOutput{} + output := &RestoreManagedPrefixListVersionOutput{} out.Result = output var buff [1024]byte @@ -39503,7 +39685,7 @@ func (m *awsEc2query_deserializeOpRevokeSecurityGroupEgress) HandleDeserialize(c } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentRevokeSecurityGroupEgressOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentRestoreManagedPrefixListVersionOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -39517,7 +39699,7 @@ func (m *awsEc2query_deserializeOpRevokeSecurityGroupEgress) HandleDeserialize(c return out, metadata, err } -func awsEc2query_deserializeOpErrorRevokeSecurityGroupEgress(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorRestoreManagedPrefixListVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -39550,14 +39732,14 @@ func awsEc2query_deserializeOpErrorRevokeSecurityGroupEgress(response *smithyhtt } } -type awsEc2query_deserializeOpRevokeSecurityGroupIngress struct { +type awsEc2query_deserializeOpRevokeClientVpnIngress struct { } -func (*awsEc2query_deserializeOpRevokeSecurityGroupIngress) ID() string { +func (*awsEc2query_deserializeOpRevokeClientVpnIngress) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpRevokeSecurityGroupIngress) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpRevokeClientVpnIngress) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -39571,9 +39753,9 @@ func (m *awsEc2query_deserializeOpRevokeSecurityGroupIngress) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorRevokeSecurityGroupIngress(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorRevokeClientVpnIngress(response, &metadata) } - output := &RevokeSecurityGroupIngressOutput{} + output := &RevokeClientVpnIngressOutput{} out.Result = output var buff [1024]byte @@ -39594,7 +39776,7 @@ func (m *awsEc2query_deserializeOpRevokeSecurityGroupIngress) HandleDeserialize( } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentRevokeSecurityGroupIngressOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentRevokeClientVpnIngressOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -39608,7 +39790,7 @@ func (m *awsEc2query_deserializeOpRevokeSecurityGroupIngress) HandleDeserialize( return out, metadata, err } -func awsEc2query_deserializeOpErrorRevokeSecurityGroupIngress(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorRevokeClientVpnIngress(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -39641,14 +39823,14 @@ func awsEc2query_deserializeOpErrorRevokeSecurityGroupIngress(response *smithyht } } -type awsEc2query_deserializeOpRunInstances struct { +type awsEc2query_deserializeOpRevokeSecurityGroupEgress struct { } -func (*awsEc2query_deserializeOpRunInstances) ID() string { +func (*awsEc2query_deserializeOpRevokeSecurityGroupEgress) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpRunInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpRevokeSecurityGroupEgress) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -39662,9 +39844,9 @@ func (m *awsEc2query_deserializeOpRunInstances) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorRunInstances(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorRevokeSecurityGroupEgress(response, &metadata) } - output := &RunInstancesOutput{} + output := &RevokeSecurityGroupEgressOutput{} out.Result = output var buff [1024]byte @@ -39685,7 +39867,7 @@ func (m *awsEc2query_deserializeOpRunInstances) HandleDeserialize(ctx context.Co } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentRunInstancesOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentRevokeSecurityGroupEgressOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -39699,7 +39881,7 @@ func (m *awsEc2query_deserializeOpRunInstances) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsEc2query_deserializeOpErrorRunInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorRevokeSecurityGroupEgress(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -39732,14 +39914,14 @@ func awsEc2query_deserializeOpErrorRunInstances(response *smithyhttp.Response, m } } -type awsEc2query_deserializeOpRunScheduledInstances struct { +type awsEc2query_deserializeOpRevokeSecurityGroupIngress struct { } -func (*awsEc2query_deserializeOpRunScheduledInstances) ID() string { +func (*awsEc2query_deserializeOpRevokeSecurityGroupIngress) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpRunScheduledInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpRevokeSecurityGroupIngress) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -39753,9 +39935,9 @@ func (m *awsEc2query_deserializeOpRunScheduledInstances) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorRunScheduledInstances(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorRevokeSecurityGroupIngress(response, &metadata) } - output := &RunScheduledInstancesOutput{} + output := &RevokeSecurityGroupIngressOutput{} out.Result = output var buff [1024]byte @@ -39776,7 +39958,7 @@ func (m *awsEc2query_deserializeOpRunScheduledInstances) HandleDeserialize(ctx c } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentRunScheduledInstancesOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentRevokeSecurityGroupIngressOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -39790,7 +39972,7 @@ func (m *awsEc2query_deserializeOpRunScheduledInstances) HandleDeserialize(ctx c return out, metadata, err } -func awsEc2query_deserializeOpErrorRunScheduledInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorRevokeSecurityGroupIngress(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -39823,14 +40005,14 @@ func awsEc2query_deserializeOpErrorRunScheduledInstances(response *smithyhttp.Re } } -type awsEc2query_deserializeOpSearchLocalGatewayRoutes struct { +type awsEc2query_deserializeOpRunInstances struct { } -func (*awsEc2query_deserializeOpSearchLocalGatewayRoutes) ID() string { +func (*awsEc2query_deserializeOpRunInstances) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpSearchLocalGatewayRoutes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpRunInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -39844,9 +40026,9 @@ func (m *awsEc2query_deserializeOpSearchLocalGatewayRoutes) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorSearchLocalGatewayRoutes(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorRunInstances(response, &metadata) } - output := &SearchLocalGatewayRoutesOutput{} + output := &RunInstancesOutput{} out.Result = output var buff [1024]byte @@ -39867,7 +40049,7 @@ func (m *awsEc2query_deserializeOpSearchLocalGatewayRoutes) HandleDeserialize(ct } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentSearchLocalGatewayRoutesOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentRunInstancesOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -39881,7 +40063,7 @@ func (m *awsEc2query_deserializeOpSearchLocalGatewayRoutes) HandleDeserialize(ct return out, metadata, err } -func awsEc2query_deserializeOpErrorSearchLocalGatewayRoutes(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorRunInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -39914,14 +40096,14 @@ func awsEc2query_deserializeOpErrorSearchLocalGatewayRoutes(response *smithyhttp } } -type awsEc2query_deserializeOpSearchTransitGatewayMulticastGroups struct { +type awsEc2query_deserializeOpRunScheduledInstances struct { } -func (*awsEc2query_deserializeOpSearchTransitGatewayMulticastGroups) ID() string { +func (*awsEc2query_deserializeOpRunScheduledInstances) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpSearchTransitGatewayMulticastGroups) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpRunScheduledInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -39935,9 +40117,9 @@ func (m *awsEc2query_deserializeOpSearchTransitGatewayMulticastGroups) HandleDes } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorSearchTransitGatewayMulticastGroups(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorRunScheduledInstances(response, &metadata) } - output := &SearchTransitGatewayMulticastGroupsOutput{} + output := &RunScheduledInstancesOutput{} out.Result = output var buff [1024]byte @@ -39958,7 +40140,7 @@ func (m *awsEc2query_deserializeOpSearchTransitGatewayMulticastGroups) HandleDes } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentSearchTransitGatewayMulticastGroupsOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentRunScheduledInstancesOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -39972,7 +40154,7 @@ func (m *awsEc2query_deserializeOpSearchTransitGatewayMulticastGroups) HandleDes return out, metadata, err } -func awsEc2query_deserializeOpErrorSearchTransitGatewayMulticastGroups(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorRunScheduledInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -40005,14 +40187,14 @@ func awsEc2query_deserializeOpErrorSearchTransitGatewayMulticastGroups(response } } -type awsEc2query_deserializeOpSearchTransitGatewayRoutes struct { +type awsEc2query_deserializeOpSearchLocalGatewayRoutes struct { } -func (*awsEc2query_deserializeOpSearchTransitGatewayRoutes) ID() string { +func (*awsEc2query_deserializeOpSearchLocalGatewayRoutes) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpSearchTransitGatewayRoutes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpSearchLocalGatewayRoutes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -40026,9 +40208,9 @@ func (m *awsEc2query_deserializeOpSearchTransitGatewayRoutes) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorSearchTransitGatewayRoutes(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorSearchLocalGatewayRoutes(response, &metadata) } - output := &SearchTransitGatewayRoutesOutput{} + output := &SearchLocalGatewayRoutesOutput{} out.Result = output var buff [1024]byte @@ -40049,7 +40231,7 @@ func (m *awsEc2query_deserializeOpSearchTransitGatewayRoutes) HandleDeserialize( } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentSearchTransitGatewayRoutesOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentSearchLocalGatewayRoutesOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -40063,7 +40245,7 @@ func (m *awsEc2query_deserializeOpSearchTransitGatewayRoutes) HandleDeserialize( return out, metadata, err } -func awsEc2query_deserializeOpErrorSearchTransitGatewayRoutes(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorSearchLocalGatewayRoutes(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -40096,14 +40278,14 @@ func awsEc2query_deserializeOpErrorSearchTransitGatewayRoutes(response *smithyht } } -type awsEc2query_deserializeOpSendDiagnosticInterrupt struct { +type awsEc2query_deserializeOpSearchTransitGatewayMulticastGroups struct { } -func (*awsEc2query_deserializeOpSendDiagnosticInterrupt) ID() string { +func (*awsEc2query_deserializeOpSearchTransitGatewayMulticastGroups) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpSendDiagnosticInterrupt) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpSearchTransitGatewayMulticastGroups) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -40117,21 +40299,44 @@ func (m *awsEc2query_deserializeOpSendDiagnosticInterrupt) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorSendDiagnosticInterrupt(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorSearchTransitGatewayMulticastGroups(response, &metadata) } - output := &SendDiagnosticInterruptOutput{} + output := &SearchTransitGatewayMulticastGroupsOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsEc2query_deserializeOpDocumentSearchTransitGatewayMulticastGroupsOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), } + return out, metadata, err } return out, metadata, err } -func awsEc2query_deserializeOpErrorSendDiagnosticInterrupt(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorSearchTransitGatewayMulticastGroups(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -40164,14 +40369,14 @@ func awsEc2query_deserializeOpErrorSendDiagnosticInterrupt(response *smithyhttp. } } -type awsEc2query_deserializeOpStartInstances struct { +type awsEc2query_deserializeOpSearchTransitGatewayRoutes struct { } -func (*awsEc2query_deserializeOpStartInstances) ID() string { +func (*awsEc2query_deserializeOpSearchTransitGatewayRoutes) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpStartInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpSearchTransitGatewayRoutes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -40185,9 +40390,9 @@ func (m *awsEc2query_deserializeOpStartInstances) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorStartInstances(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorSearchTransitGatewayRoutes(response, &metadata) } - output := &StartInstancesOutput{} + output := &SearchTransitGatewayRoutesOutput{} out.Result = output var buff [1024]byte @@ -40208,7 +40413,7 @@ func (m *awsEc2query_deserializeOpStartInstances) HandleDeserialize(ctx context. } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentStartInstancesOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentSearchTransitGatewayRoutesOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -40222,7 +40427,7 @@ func (m *awsEc2query_deserializeOpStartInstances) HandleDeserialize(ctx context. return out, metadata, err } -func awsEc2query_deserializeOpErrorStartInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorSearchTransitGatewayRoutes(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -40255,14 +40460,14 @@ func awsEc2query_deserializeOpErrorStartInstances(response *smithyhttp.Response, } } -type awsEc2query_deserializeOpStartNetworkInsightsAnalysis struct { +type awsEc2query_deserializeOpSendDiagnosticInterrupt struct { } -func (*awsEc2query_deserializeOpStartNetworkInsightsAnalysis) ID() string { +func (*awsEc2query_deserializeOpSendDiagnosticInterrupt) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpStartNetworkInsightsAnalysis) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpSendDiagnosticInterrupt) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -40276,44 +40481,21 @@ func (m *awsEc2query_deserializeOpStartNetworkInsightsAnalysis) HandleDeserializ } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorStartNetworkInsightsAnalysis(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorSendDiagnosticInterrupt(response, &metadata) } - output := &StartNetworkInsightsAnalysisOutput{} + output := &SendDiagnosticInterruptOutput{} out.Result = output - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(response.Body, ringBuffer) - rootDecoder := xml.NewDecoder(body) - t, err := smithyxml.FetchRootElement(rootDecoder) - if err == io.EOF { - return out, metadata, nil - } - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - } - - decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentStartNetworkInsightsAnalysisOutput(&output, decoder) - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + Err: fmt.Errorf("failed to discard response body, %w", err), } - return out, metadata, err } return out, metadata, err } -func awsEc2query_deserializeOpErrorStartNetworkInsightsAnalysis(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorSendDiagnosticInterrupt(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -40346,14 +40528,14 @@ func awsEc2query_deserializeOpErrorStartNetworkInsightsAnalysis(response *smithy } } -type awsEc2query_deserializeOpStartVpcEndpointServicePrivateDnsVerification struct { +type awsEc2query_deserializeOpStartInstances struct { } -func (*awsEc2query_deserializeOpStartVpcEndpointServicePrivateDnsVerification) ID() string { +func (*awsEc2query_deserializeOpStartInstances) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpStartVpcEndpointServicePrivateDnsVerification) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpStartInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -40367,9 +40549,9 @@ func (m *awsEc2query_deserializeOpStartVpcEndpointServicePrivateDnsVerification) } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorStartVpcEndpointServicePrivateDnsVerification(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorStartInstances(response, &metadata) } - output := &StartVpcEndpointServicePrivateDnsVerificationOutput{} + output := &StartInstancesOutput{} out.Result = output var buff [1024]byte @@ -40390,7 +40572,7 @@ func (m *awsEc2query_deserializeOpStartVpcEndpointServicePrivateDnsVerification) } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentStartVpcEndpointServicePrivateDnsVerificationOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentStartInstancesOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -40404,7 +40586,7 @@ func (m *awsEc2query_deserializeOpStartVpcEndpointServicePrivateDnsVerification) return out, metadata, err } -func awsEc2query_deserializeOpErrorStartVpcEndpointServicePrivateDnsVerification(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorStartInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -40437,14 +40619,14 @@ func awsEc2query_deserializeOpErrorStartVpcEndpointServicePrivateDnsVerification } } -type awsEc2query_deserializeOpStopInstances struct { +type awsEc2query_deserializeOpStartNetworkInsightsAnalysis struct { } -func (*awsEc2query_deserializeOpStopInstances) ID() string { +func (*awsEc2query_deserializeOpStartNetworkInsightsAnalysis) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpStopInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpStartNetworkInsightsAnalysis) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -40458,9 +40640,9 @@ func (m *awsEc2query_deserializeOpStopInstances) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorStopInstances(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorStartNetworkInsightsAnalysis(response, &metadata) } - output := &StopInstancesOutput{} + output := &StartNetworkInsightsAnalysisOutput{} out.Result = output var buff [1024]byte @@ -40481,7 +40663,7 @@ func (m *awsEc2query_deserializeOpStopInstances) HandleDeserialize(ctx context.C } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentStopInstancesOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentStartNetworkInsightsAnalysisOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -40495,7 +40677,7 @@ func (m *awsEc2query_deserializeOpStopInstances) HandleDeserialize(ctx context.C return out, metadata, err } -func awsEc2query_deserializeOpErrorStopInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorStartNetworkInsightsAnalysis(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -40528,14 +40710,14 @@ func awsEc2query_deserializeOpErrorStopInstances(response *smithyhttp.Response, } } -type awsEc2query_deserializeOpTerminateClientVpnConnections struct { +type awsEc2query_deserializeOpStartVpcEndpointServicePrivateDnsVerification struct { } -func (*awsEc2query_deserializeOpTerminateClientVpnConnections) ID() string { +func (*awsEc2query_deserializeOpStartVpcEndpointServicePrivateDnsVerification) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpTerminateClientVpnConnections) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpStartVpcEndpointServicePrivateDnsVerification) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -40549,9 +40731,9 @@ func (m *awsEc2query_deserializeOpTerminateClientVpnConnections) HandleDeseriali } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorTerminateClientVpnConnections(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorStartVpcEndpointServicePrivateDnsVerification(response, &metadata) } - output := &TerminateClientVpnConnectionsOutput{} + output := &StartVpcEndpointServicePrivateDnsVerificationOutput{} out.Result = output var buff [1024]byte @@ -40572,7 +40754,7 @@ func (m *awsEc2query_deserializeOpTerminateClientVpnConnections) HandleDeseriali } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentTerminateClientVpnConnectionsOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentStartVpcEndpointServicePrivateDnsVerificationOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -40586,7 +40768,7 @@ func (m *awsEc2query_deserializeOpTerminateClientVpnConnections) HandleDeseriali return out, metadata, err } -func awsEc2query_deserializeOpErrorTerminateClientVpnConnections(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorStartVpcEndpointServicePrivateDnsVerification(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -40619,14 +40801,14 @@ func awsEc2query_deserializeOpErrorTerminateClientVpnConnections(response *smith } } -type awsEc2query_deserializeOpTerminateInstances struct { +type awsEc2query_deserializeOpStopInstances struct { } -func (*awsEc2query_deserializeOpTerminateInstances) ID() string { +func (*awsEc2query_deserializeOpStopInstances) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpTerminateInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpStopInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -40640,9 +40822,9 @@ func (m *awsEc2query_deserializeOpTerminateInstances) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorTerminateInstances(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorStopInstances(response, &metadata) } - output := &TerminateInstancesOutput{} + output := &StopInstancesOutput{} out.Result = output var buff [1024]byte @@ -40663,7 +40845,7 @@ func (m *awsEc2query_deserializeOpTerminateInstances) HandleDeserialize(ctx cont } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentTerminateInstancesOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentStopInstancesOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -40677,7 +40859,7 @@ func (m *awsEc2query_deserializeOpTerminateInstances) HandleDeserialize(ctx cont return out, metadata, err } -func awsEc2query_deserializeOpErrorTerminateInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorStopInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -40710,14 +40892,14 @@ func awsEc2query_deserializeOpErrorTerminateInstances(response *smithyhttp.Respo } } -type awsEc2query_deserializeOpUnassignIpv6Addresses struct { +type awsEc2query_deserializeOpTerminateClientVpnConnections struct { } -func (*awsEc2query_deserializeOpUnassignIpv6Addresses) ID() string { +func (*awsEc2query_deserializeOpTerminateClientVpnConnections) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpUnassignIpv6Addresses) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpTerminateClientVpnConnections) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -40731,9 +40913,9 @@ func (m *awsEc2query_deserializeOpUnassignIpv6Addresses) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorUnassignIpv6Addresses(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorTerminateClientVpnConnections(response, &metadata) } - output := &UnassignIpv6AddressesOutput{} + output := &TerminateClientVpnConnectionsOutput{} out.Result = output var buff [1024]byte @@ -40754,7 +40936,7 @@ func (m *awsEc2query_deserializeOpUnassignIpv6Addresses) HandleDeserialize(ctx c } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentUnassignIpv6AddressesOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentTerminateClientVpnConnectionsOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -40768,75 +40950,7 @@ func (m *awsEc2query_deserializeOpUnassignIpv6Addresses) HandleDeserialize(ctx c return out, metadata, err } -func awsEc2query_deserializeOpErrorUnassignIpv6Addresses(response *smithyhttp.Response, metadata *middleware.Metadata) error { - var errorBuffer bytes.Buffer - if _, err := io.Copy(&errorBuffer, response.Body); err != nil { - return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} - } - errorBody := bytes.NewReader(errorBuffer.Bytes()) - - errorCode := "UnknownError" - errorMessage := errorCode - - errorComponents, err := ec2query.GetErrorResponseComponents(errorBody) - if err != nil { - return err - } - awsmiddleware.SetRequestIDMetadata(metadata, errorComponents.RequestID) - if len(errorComponents.Code) != 0 { - errorCode = errorComponents.Code - } - if len(errorComponents.Message) != 0 { - errorMessage = errorComponents.Message - } - errorBody.Seek(0, io.SeekStart) - switch { - default: - genericError := &smithy.GenericAPIError{ - Code: errorCode, - Message: errorMessage, - } - return genericError - - } -} - -type awsEc2query_deserializeOpUnassignPrivateIpAddresses struct { -} - -func (*awsEc2query_deserializeOpUnassignPrivateIpAddresses) ID() string { - return "OperationDeserializer" -} - -func (m *awsEc2query_deserializeOpUnassignPrivateIpAddresses) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( - out middleware.DeserializeOutput, metadata middleware.Metadata, err error, -) { - out, metadata, err = next.HandleDeserialize(ctx, in) - if err != nil { - return out, metadata, err - } - - response, ok := out.RawResponse.(*smithyhttp.Response) - if !ok { - return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} - } - - if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorUnassignPrivateIpAddresses(response, &metadata) - } - output := &UnassignPrivateIpAddressesOutput{} - out.Result = output - - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { - return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), - } - } - - return out, metadata, err -} - -func awsEc2query_deserializeOpErrorUnassignPrivateIpAddresses(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorTerminateClientVpnConnections(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -40869,14 +40983,14 @@ func awsEc2query_deserializeOpErrorUnassignPrivateIpAddresses(response *smithyht } } -type awsEc2query_deserializeOpUnmonitorInstances struct { +type awsEc2query_deserializeOpTerminateInstances struct { } -func (*awsEc2query_deserializeOpUnmonitorInstances) ID() string { +func (*awsEc2query_deserializeOpTerminateInstances) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpUnmonitorInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpTerminateInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -40890,9 +41004,9 @@ func (m *awsEc2query_deserializeOpUnmonitorInstances) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorUnmonitorInstances(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorTerminateInstances(response, &metadata) } - output := &UnmonitorInstancesOutput{} + output := &TerminateInstancesOutput{} out.Result = output var buff [1024]byte @@ -40913,7 +41027,7 @@ func (m *awsEc2query_deserializeOpUnmonitorInstances) HandleDeserialize(ctx cont } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentUnmonitorInstancesOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentTerminateInstancesOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -40927,7 +41041,7 @@ func (m *awsEc2query_deserializeOpUnmonitorInstances) HandleDeserialize(ctx cont return out, metadata, err } -func awsEc2query_deserializeOpErrorUnmonitorInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorTerminateInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -40960,14 +41074,14 @@ func awsEc2query_deserializeOpErrorUnmonitorInstances(response *smithyhttp.Respo } } -type awsEc2query_deserializeOpUpdateSecurityGroupRuleDescriptionsEgress struct { +type awsEc2query_deserializeOpUnassignIpv6Addresses struct { } -func (*awsEc2query_deserializeOpUpdateSecurityGroupRuleDescriptionsEgress) ID() string { +func (*awsEc2query_deserializeOpUnassignIpv6Addresses) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpUpdateSecurityGroupRuleDescriptionsEgress) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpUnassignIpv6Addresses) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -40981,9 +41095,9 @@ func (m *awsEc2query_deserializeOpUpdateSecurityGroupRuleDescriptionsEgress) Han } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorUpdateSecurityGroupRuleDescriptionsEgress(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorUnassignIpv6Addresses(response, &metadata) } - output := &UpdateSecurityGroupRuleDescriptionsEgressOutput{} + output := &UnassignIpv6AddressesOutput{} out.Result = output var buff [1024]byte @@ -41004,7 +41118,7 @@ func (m *awsEc2query_deserializeOpUpdateSecurityGroupRuleDescriptionsEgress) Han } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentUpdateSecurityGroupRuleDescriptionsEgressOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentUnassignIpv6AddressesOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -41018,7 +41132,7 @@ func (m *awsEc2query_deserializeOpUpdateSecurityGroupRuleDescriptionsEgress) Han return out, metadata, err } -func awsEc2query_deserializeOpErrorUpdateSecurityGroupRuleDescriptionsEgress(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorUnassignIpv6Addresses(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -41051,14 +41165,14 @@ func awsEc2query_deserializeOpErrorUpdateSecurityGroupRuleDescriptionsEgress(res } } -type awsEc2query_deserializeOpUpdateSecurityGroupRuleDescriptionsIngress struct { +type awsEc2query_deserializeOpUnassignPrivateIpAddresses struct { } -func (*awsEc2query_deserializeOpUpdateSecurityGroupRuleDescriptionsIngress) ID() string { +func (*awsEc2query_deserializeOpUnassignPrivateIpAddresses) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpUpdateSecurityGroupRuleDescriptionsIngress) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpUnassignPrivateIpAddresses) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -41072,44 +41186,21 @@ func (m *awsEc2query_deserializeOpUpdateSecurityGroupRuleDescriptionsIngress) Ha } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorUpdateSecurityGroupRuleDescriptionsIngress(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorUnassignPrivateIpAddresses(response, &metadata) } - output := &UpdateSecurityGroupRuleDescriptionsIngressOutput{} + output := &UnassignPrivateIpAddressesOutput{} out.Result = output - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(response.Body, ringBuffer) - rootDecoder := xml.NewDecoder(body) - t, err := smithyxml.FetchRootElement(rootDecoder) - if err == io.EOF { - return out, metadata, nil - } - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), - } - } - - decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentUpdateSecurityGroupRuleDescriptionsIngressOutput(&output, decoder) - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + Err: fmt.Errorf("failed to discard response body, %w", err), } - return out, metadata, err } return out, metadata, err } -func awsEc2query_deserializeOpErrorUpdateSecurityGroupRuleDescriptionsIngress(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorUnassignPrivateIpAddresses(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -41142,14 +41233,14 @@ func awsEc2query_deserializeOpErrorUpdateSecurityGroupRuleDescriptionsIngress(re } } -type awsEc2query_deserializeOpWithdrawByoipCidr struct { +type awsEc2query_deserializeOpUnmonitorInstances struct { } -func (*awsEc2query_deserializeOpWithdrawByoipCidr) ID() string { +func (*awsEc2query_deserializeOpUnmonitorInstances) ID() string { return "OperationDeserializer" } -func (m *awsEc2query_deserializeOpWithdrawByoipCidr) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsEc2query_deserializeOpUnmonitorInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -41163,9 +41254,9 @@ func (m *awsEc2query_deserializeOpWithdrawByoipCidr) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsEc2query_deserializeOpErrorWithdrawByoipCidr(response, &metadata) + return out, metadata, awsEc2query_deserializeOpErrorUnmonitorInstances(response, &metadata) } - output := &WithdrawByoipCidrOutput{} + output := &UnmonitorInstancesOutput{} out.Result = output var buff [1024]byte @@ -41186,7 +41277,7 @@ func (m *awsEc2query_deserializeOpWithdrawByoipCidr) HandleDeserialize(ctx conte } decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) - err = awsEc2query_deserializeOpDocumentWithdrawByoipCidrOutput(&output, decoder) + err = awsEc2query_deserializeOpDocumentUnmonitorInstancesOutput(&output, decoder) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -41200,7 +41291,280 @@ func (m *awsEc2query_deserializeOpWithdrawByoipCidr) HandleDeserialize(ctx conte return out, metadata, err } -func awsEc2query_deserializeOpErrorWithdrawByoipCidr(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsEc2query_deserializeOpErrorUnmonitorInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + errorComponents, err := ec2query.GetErrorResponseComponents(errorBody) + if err != nil { + return err + } + awsmiddleware.SetRequestIDMetadata(metadata, errorComponents.RequestID) + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsEc2query_deserializeOpUpdateSecurityGroupRuleDescriptionsEgress struct { +} + +func (*awsEc2query_deserializeOpUpdateSecurityGroupRuleDescriptionsEgress) ID() string { + return "OperationDeserializer" +} + +func (m *awsEc2query_deserializeOpUpdateSecurityGroupRuleDescriptionsEgress) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsEc2query_deserializeOpErrorUpdateSecurityGroupRuleDescriptionsEgress(response, &metadata) + } + output := &UpdateSecurityGroupRuleDescriptionsEgressOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsEc2query_deserializeOpDocumentUpdateSecurityGroupRuleDescriptionsEgressOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsEc2query_deserializeOpErrorUpdateSecurityGroupRuleDescriptionsEgress(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + errorComponents, err := ec2query.GetErrorResponseComponents(errorBody) + if err != nil { + return err + } + awsmiddleware.SetRequestIDMetadata(metadata, errorComponents.RequestID) + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsEc2query_deserializeOpUpdateSecurityGroupRuleDescriptionsIngress struct { +} + +func (*awsEc2query_deserializeOpUpdateSecurityGroupRuleDescriptionsIngress) ID() string { + return "OperationDeserializer" +} + +func (m *awsEc2query_deserializeOpUpdateSecurityGroupRuleDescriptionsIngress) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsEc2query_deserializeOpErrorUpdateSecurityGroupRuleDescriptionsIngress(response, &metadata) + } + output := &UpdateSecurityGroupRuleDescriptionsIngressOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsEc2query_deserializeOpDocumentUpdateSecurityGroupRuleDescriptionsIngressOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsEc2query_deserializeOpErrorUpdateSecurityGroupRuleDescriptionsIngress(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + errorComponents, err := ec2query.GetErrorResponseComponents(errorBody) + if err != nil { + return err + } + awsmiddleware.SetRequestIDMetadata(metadata, errorComponents.RequestID) + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsEc2query_deserializeOpWithdrawByoipCidr struct { +} + +func (*awsEc2query_deserializeOpWithdrawByoipCidr) ID() string { + return "OperationDeserializer" +} + +func (m *awsEc2query_deserializeOpWithdrawByoipCidr) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsEc2query_deserializeOpErrorWithdrawByoipCidr(response, &metadata) + } + output := &WithdrawByoipCidrOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsEc2query_deserializeOpDocumentWithdrawByoipCidrOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsEc2query_deserializeOpErrorWithdrawByoipCidr(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -45099,6 +45463,68 @@ func awsEc2query_deserializeDocumentByoipCidrSetUnwrapped(v *[]types.ByoipCidr, *v = sv return nil } +func awsEc2query_deserializeDocumentCancelCapacityReservationFleetError(v **types.CancelCapacityReservationFleetError, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.CancelCapacityReservationFleetError + if *v == nil { + sv = &types.CancelCapacityReservationFleetError{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("code", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.Code = ptr.String(xtv) + } + + case strings.EqualFold("message", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.Message = ptr.String(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + func awsEc2query_deserializeDocumentCancelledSpotInstanceRequest(v **types.CancelledSpotInstanceRequest, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -45635,6 +46061,19 @@ func awsEc2query_deserializeDocumentCapacityReservation(v **types.CapacityReserv sv.CapacityReservationArn = ptr.String(xtv) } + case strings.EqualFold("capacityReservationFleetId", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.CapacityReservationFleetId = ptr.String(xtv) + } + case strings.EqualFold("capacityReservationId", t.Name.Local): val, err := decoder.Value() if err != nil { @@ -45872,6 +46311,411 @@ func awsEc2query_deserializeDocumentCapacityReservation(v **types.CapacityReserv return nil } +func awsEc2query_deserializeDocumentCapacityReservationFleet(v **types.CapacityReservationFleet, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.CapacityReservationFleet + if *v == nil { + sv = &types.CapacityReservationFleet{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("allocationStrategy", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.AllocationStrategy = ptr.String(xtv) + } + + case strings.EqualFold("capacityReservationFleetArn", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.CapacityReservationFleetArn = ptr.String(xtv) + } + + case strings.EqualFold("capacityReservationFleetId", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.CapacityReservationFleetId = ptr.String(xtv) + } + + case strings.EqualFold("createTime", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + t, err := smithytime.ParseDateTime(xtv) + if err != nil { + return err + } + sv.CreateTime = ptr.Time(t) + } + + case strings.EqualFold("endDate", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + t, err := smithytime.ParseDateTime(xtv) + if err != nil { + return err + } + sv.EndDate = ptr.Time(t) + } + + case strings.EqualFold("instanceMatchCriteria", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.InstanceMatchCriteria = types.FleetInstanceMatchCriteria(xtv) + } + + case strings.EqualFold("instanceTypeSpecificationSet", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsEc2query_deserializeDocumentFleetCapacityReservationSet(&sv.InstanceTypeSpecifications, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("state", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.State = types.CapacityReservationFleetState(xtv) + } + + case strings.EqualFold("tagSet", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsEc2query_deserializeDocumentTagList(&sv.Tags, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("tenancy", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.Tenancy = types.FleetCapacityReservationTenancy(xtv) + } + + case strings.EqualFold("totalFulfilledCapacity", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + f64, err := strconv.ParseFloat(xtv, 64) + if err != nil { + return err + } + sv.TotalFulfilledCapacity = ptr.Float64(f64) + } + + case strings.EqualFold("totalTargetCapacity", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + i64, err := strconv.ParseInt(xtv, 10, 64) + if err != nil { + return err + } + sv.TotalTargetCapacity = ptr.Int32(int32(i64)) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsEc2query_deserializeDocumentCapacityReservationFleetCancellationState(v **types.CapacityReservationFleetCancellationState, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.CapacityReservationFleetCancellationState + if *v == nil { + sv = &types.CapacityReservationFleetCancellationState{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("capacityReservationFleetId", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.CapacityReservationFleetId = ptr.String(xtv) + } + + case strings.EqualFold("currentFleetState", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.CurrentFleetState = types.CapacityReservationFleetState(xtv) + } + + case strings.EqualFold("previousFleetState", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.PreviousFleetState = types.CapacityReservationFleetState(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsEc2query_deserializeDocumentCapacityReservationFleetCancellationStateSet(v *[]types.CapacityReservationFleetCancellationState, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv []types.CapacityReservationFleetCancellationState + if *v == nil { + sv = make([]types.CapacityReservationFleetCancellationState, 0) + } else { + sv = *v + } + + originalDecoder := decoder + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + switch { + case strings.EqualFold("item", t.Name.Local): + var col types.CapacityReservationFleetCancellationState + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + destAddr := &col + if err := awsEc2query_deserializeDocumentCapacityReservationFleetCancellationState(&destAddr, nodeDecoder); err != nil { + return err + } + col = *destAddr + sv = append(sv, col) + + default: + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsEc2query_deserializeDocumentCapacityReservationFleetCancellationStateSetUnwrapped(v *[]types.CapacityReservationFleetCancellationState, decoder smithyxml.NodeDecoder) error { + var sv []types.CapacityReservationFleetCancellationState + if *v == nil { + sv = make([]types.CapacityReservationFleetCancellationState, 0) + } else { + sv = *v + } + + switch { + default: + var mv types.CapacityReservationFleetCancellationState + t := decoder.StartEl + _ = t + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + destAddr := &mv + if err := awsEc2query_deserializeDocumentCapacityReservationFleetCancellationState(&destAddr, nodeDecoder); err != nil { + return err + } + mv = *destAddr + sv = append(sv, mv) + } + *v = sv + return nil +} +func awsEc2query_deserializeDocumentCapacityReservationFleetSet(v *[]types.CapacityReservationFleet, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv []types.CapacityReservationFleet + if *v == nil { + sv = make([]types.CapacityReservationFleet, 0) + } else { + sv = *v + } + + originalDecoder := decoder + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + switch { + case strings.EqualFold("item", t.Name.Local): + var col types.CapacityReservationFleet + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + destAddr := &col + if err := awsEc2query_deserializeDocumentCapacityReservationFleet(&destAddr, nodeDecoder); err != nil { + return err + } + col = *destAddr + sv = append(sv, col) + + default: + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsEc2query_deserializeDocumentCapacityReservationFleetSetUnwrapped(v *[]types.CapacityReservationFleet, decoder smithyxml.NodeDecoder) error { + var sv []types.CapacityReservationFleet + if *v == nil { + sv = make([]types.CapacityReservationFleet, 0) + } else { + sv = *v + } + + switch { + default: + var mv types.CapacityReservationFleet + t := decoder.StartEl + _ = t + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + destAddr := &mv + if err := awsEc2query_deserializeDocumentCapacityReservationFleet(&destAddr, nodeDecoder); err != nil { + return err + } + mv = *destAddr + sv = append(sv, mv) + } + *v = sv + return nil +} func awsEc2query_deserializeDocumentCapacityReservationGroup(v **types.CapacityReservationGroup, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -55848,6 +56692,129 @@ func awsEc2query_deserializeDocumentExportToS3Task(v **types.ExportToS3Task, dec return nil } +func awsEc2query_deserializeDocumentFailedCapacityReservationFleetCancellationResult(v **types.FailedCapacityReservationFleetCancellationResult, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.FailedCapacityReservationFleetCancellationResult + if *v == nil { + sv = &types.FailedCapacityReservationFleetCancellationResult{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("cancelCapacityReservationFleetError", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsEc2query_deserializeDocumentCancelCapacityReservationFleetError(&sv.CancelCapacityReservationFleetError, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("capacityReservationFleetId", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.CapacityReservationFleetId = ptr.String(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsEc2query_deserializeDocumentFailedCapacityReservationFleetCancellationResultSet(v *[]types.FailedCapacityReservationFleetCancellationResult, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv []types.FailedCapacityReservationFleetCancellationResult + if *v == nil { + sv = make([]types.FailedCapacityReservationFleetCancellationResult, 0) + } else { + sv = *v + } + + originalDecoder := decoder + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + switch { + case strings.EqualFold("item", t.Name.Local): + var col types.FailedCapacityReservationFleetCancellationResult + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + destAddr := &col + if err := awsEc2query_deserializeDocumentFailedCapacityReservationFleetCancellationResult(&destAddr, nodeDecoder); err != nil { + return err + } + col = *destAddr + sv = append(sv, col) + + default: + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsEc2query_deserializeDocumentFailedCapacityReservationFleetCancellationResultSetUnwrapped(v *[]types.FailedCapacityReservationFleetCancellationResult, decoder smithyxml.NodeDecoder) error { + var sv []types.FailedCapacityReservationFleetCancellationResult + if *v == nil { + sv = make([]types.FailedCapacityReservationFleetCancellationResult, 0) + } else { + sv = *v + } + + switch { + default: + var mv types.FailedCapacityReservationFleetCancellationResult + t := decoder.StartEl + _ = t + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + destAddr := &mv + if err := awsEc2query_deserializeDocumentFailedCapacityReservationFleetCancellationResult(&destAddr, nodeDecoder); err != nil { + return err + } + mv = *destAddr + sv = append(sv, mv) + } + *v = sv + return nil +} func awsEc2query_deserializeDocumentFailedQueuedPurchaseDeletion(v **types.FailedQueuedPurchaseDeletion, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -56033,6 +57000,276 @@ func awsEc2query_deserializeDocumentFederatedAuthentication(v **types.FederatedA return nil } +func awsEc2query_deserializeDocumentFleetCapacityReservation(v **types.FleetCapacityReservation, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.FleetCapacityReservation + if *v == nil { + sv = &types.FleetCapacityReservation{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("availabilityZone", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.AvailabilityZone = ptr.String(xtv) + } + + case strings.EqualFold("availabilityZoneId", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.AvailabilityZoneId = ptr.String(xtv) + } + + case strings.EqualFold("capacityReservationId", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.CapacityReservationId = ptr.String(xtv) + } + + case strings.EqualFold("createDate", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + t, err := smithytime.ParseDateTime(xtv) + if err != nil { + return err + } + sv.CreateDate = ptr.Time(t) + } + + case strings.EqualFold("ebsOptimized", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv, err := strconv.ParseBool(string(val)) + if err != nil { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", val) + } + sv.EbsOptimized = ptr.Bool(xtv) + } + + case strings.EqualFold("fulfilledCapacity", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + f64, err := strconv.ParseFloat(xtv, 64) + if err != nil { + return err + } + sv.FulfilledCapacity = ptr.Float64(f64) + } + + case strings.EqualFold("instancePlatform", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.InstancePlatform = types.CapacityReservationInstancePlatform(xtv) + } + + case strings.EqualFold("instanceType", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.InstanceType = types.InstanceType(xtv) + } + + case strings.EqualFold("priority", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + i64, err := strconv.ParseInt(xtv, 10, 64) + if err != nil { + return err + } + sv.Priority = ptr.Int32(int32(i64)) + } + + case strings.EqualFold("totalInstanceCount", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + i64, err := strconv.ParseInt(xtv, 10, 64) + if err != nil { + return err + } + sv.TotalInstanceCount = ptr.Int32(int32(i64)) + } + + case strings.EqualFold("weight", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + f64, err := strconv.ParseFloat(xtv, 64) + if err != nil { + return err + } + sv.Weight = ptr.Float64(f64) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsEc2query_deserializeDocumentFleetCapacityReservationSet(v *[]types.FleetCapacityReservation, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv []types.FleetCapacityReservation + if *v == nil { + sv = make([]types.FleetCapacityReservation, 0) + } else { + sv = *v + } + + originalDecoder := decoder + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + switch { + case strings.EqualFold("item", t.Name.Local): + var col types.FleetCapacityReservation + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + destAddr := &col + if err := awsEc2query_deserializeDocumentFleetCapacityReservation(&destAddr, nodeDecoder); err != nil { + return err + } + col = *destAddr + sv = append(sv, col) + + default: + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsEc2query_deserializeDocumentFleetCapacityReservationSetUnwrapped(v *[]types.FleetCapacityReservation, decoder smithyxml.NodeDecoder) error { + var sv []types.FleetCapacityReservation + if *v == nil { + sv = make([]types.FleetCapacityReservation, 0) + } else { + sv = *v + } + + switch { + default: + var mv types.FleetCapacityReservation + t := decoder.StartEl + _ = t + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + destAddr := &mv + if err := awsEc2query_deserializeDocumentFleetCapacityReservation(&destAddr, nodeDecoder); err != nil { + return err + } + mv = *destAddr + sv = append(sv, mv) + } + *v = sv + return nil +} func awsEc2query_deserializeDocumentFleetData(v **types.FleetData, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -107139,6 +108376,54 @@ func awsEc2query_deserializeOpDocumentCancelBundleTaskOutput(v **CancelBundleTas return nil } +func awsEc2query_deserializeOpDocumentCancelCapacityReservationFleetsOutput(v **CancelCapacityReservationFleetsOutput, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *CancelCapacityReservationFleetsOutput + if *v == nil { + sv = &CancelCapacityReservationFleetsOutput{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("failedFleetCancellationSet", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsEc2query_deserializeDocumentFailedCapacityReservationFleetCancellationResultSet(&sv.FailedFleetCancellations, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("successfulFleetCancellationSet", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsEc2query_deserializeDocumentCapacityReservationFleetCancellationStateSet(&sv.SuccessfulFleetCancellations, nodeDecoder); err != nil { + return err + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + func awsEc2query_deserializeOpDocumentCancelCapacityReservationOutput(v **CancelCapacityReservationOutput, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -107616,6 +108901,187 @@ func awsEc2query_deserializeOpDocumentCopySnapshotOutput(v **CopySnapshotOutput, return nil } +func awsEc2query_deserializeOpDocumentCreateCapacityReservationFleetOutput(v **CreateCapacityReservationFleetOutput, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *CreateCapacityReservationFleetOutput + if *v == nil { + sv = &CreateCapacityReservationFleetOutput{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("allocationStrategy", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.AllocationStrategy = ptr.String(xtv) + } + + case strings.EqualFold("capacityReservationFleetId", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.CapacityReservationFleetId = ptr.String(xtv) + } + + case strings.EqualFold("createTime", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + t, err := smithytime.ParseDateTime(xtv) + if err != nil { + return err + } + sv.CreateTime = ptr.Time(t) + } + + case strings.EqualFold("endDate", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + t, err := smithytime.ParseDateTime(xtv) + if err != nil { + return err + } + sv.EndDate = ptr.Time(t) + } + + case strings.EqualFold("fleetCapacityReservationSet", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsEc2query_deserializeDocumentFleetCapacityReservationSet(&sv.FleetCapacityReservations, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("instanceMatchCriteria", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.InstanceMatchCriteria = types.FleetInstanceMatchCriteria(xtv) + } + + case strings.EqualFold("state", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.State = types.CapacityReservationFleetState(xtv) + } + + case strings.EqualFold("tagSet", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsEc2query_deserializeDocumentTagList(&sv.Tags, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("tenancy", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.Tenancy = types.FleetCapacityReservationTenancy(xtv) + } + + case strings.EqualFold("totalFulfilledCapacity", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + f64, err := strconv.ParseFloat(xtv, 64) + if err != nil { + return err + } + sv.TotalFulfilledCapacity = ptr.Float64(f64) + } + + case strings.EqualFold("totalTargetCapacity", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + i64, err := strconv.ParseInt(xtv, 10, 64) + if err != nil { + return err + } + sv.TotalTargetCapacity = ptr.Int32(int32(i64)) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + func awsEc2query_deserializeOpDocumentCreateCapacityReservationOutput(v **CreateCapacityReservationOutput, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -113029,6 +114495,61 @@ func awsEc2query_deserializeOpDocumentDescribeByoipCidrsOutput(v **DescribeByoip return nil } +func awsEc2query_deserializeOpDocumentDescribeCapacityReservationFleetsOutput(v **DescribeCapacityReservationFleetsOutput, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *DescribeCapacityReservationFleetsOutput + if *v == nil { + sv = &DescribeCapacityReservationFleetsOutput{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("capacityReservationFleetSet", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsEc2query_deserializeDocumentCapacityReservationFleetSet(&sv.CapacityReservationFleets, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("nextToken", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.NextToken = ptr.String(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + func awsEc2query_deserializeOpDocumentDescribeCapacityReservationsOutput(v **DescribeCapacityReservationsOutput, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -123452,6 +124973,58 @@ func awsEc2query_deserializeOpDocumentModifyAvailabilityZoneGroupOutput(v **Modi return nil } +func awsEc2query_deserializeOpDocumentModifyCapacityReservationFleetOutput(v **ModifyCapacityReservationFleetOutput, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *ModifyCapacityReservationFleetOutput + if *v == nil { + sv = &ModifyCapacityReservationFleetOutput{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("return", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv, err := strconv.ParseBool(string(val)) + if err != nil { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", val) + } + sv.Return = ptr.Bool(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + func awsEc2query_deserializeOpDocumentModifyCapacityReservationOutput(v **ModifyCapacityReservationOutput, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/ec2/generated.json b/service/ec2/generated.json index fcf1693df90..28941d7a210 100644 --- a/service/ec2/generated.json +++ b/service/ec2/generated.json @@ -42,6 +42,7 @@ "api_op_BundleInstance.go", "api_op_CancelBundleTask.go", "api_op_CancelCapacityReservation.go", + "api_op_CancelCapacityReservationFleets.go", "api_op_CancelConversionTask.go", "api_op_CancelExportTask.go", "api_op_CancelImportTask.go", @@ -54,6 +55,7 @@ "api_op_CopySnapshot.go", "api_op_CopySnapshot_test.go", "api_op_CreateCapacityReservation.go", + "api_op_CreateCapacityReservationFleet.go", "api_op_CreateCarrierGateway.go", "api_op_CreateClientVpnEndpoint.go", "api_op_CreateClientVpnRoute.go", @@ -185,6 +187,7 @@ "api_op_DescribeAvailabilityZones.go", "api_op_DescribeBundleTasks.go", "api_op_DescribeByoipCidrs.go", + "api_op_DescribeCapacityReservationFleets.go", "api_op_DescribeCapacityReservations.go", "api_op_DescribeCarrierGateways.go", "api_op_DescribeClassicLinkInstances.go", @@ -375,6 +378,7 @@ "api_op_ModifyAddressAttribute.go", "api_op_ModifyAvailabilityZoneGroup.go", "api_op_ModifyCapacityReservation.go", + "api_op_ModifyCapacityReservationFleet.go", "api_op_ModifyClientVpnEndpoint.go", "api_op_ModifyDefaultCreditSpecification.go", "api_op_ModifyEbsDefaultKmsKeyId.go", diff --git a/service/ec2/serializers.go b/service/ec2/serializers.go index d9db4a6e5b4..76ab7fa16ba 100644 --- a/service/ec2/serializers.go +++ b/service/ec2/serializers.go @@ -1976,6 +1976,62 @@ func (m *awsEc2query_serializeOpCancelCapacityReservation) HandleSerialize(ctx c return next.HandleSerialize(ctx, in) } +type awsEc2query_serializeOpCancelCapacityReservationFleets struct { +} + +func (*awsEc2query_serializeOpCancelCapacityReservationFleets) ID() string { + return "OperationSerializer" +} + +func (m *awsEc2query_serializeOpCancelCapacityReservationFleets) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*CancelCapacityReservationFleetsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-www-form-urlencoded") + + bodyWriter := bytes.NewBuffer(nil) + bodyEncoder := query.NewEncoder(bodyWriter) + body := bodyEncoder.Object() + body.Key("Action").String("CancelCapacityReservationFleets") + body.Key("Version").String("2016-11-15") + + if err := awsEc2query_serializeOpDocumentCancelCapacityReservationFleetsInput(input, bodyEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + err = bodyEncoder.Encode() + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(bodyWriter.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + type awsEc2query_serializeOpCancelConversionTask struct { } @@ -2592,6 +2648,62 @@ func (m *awsEc2query_serializeOpCreateCapacityReservation) HandleSerialize(ctx c return next.HandleSerialize(ctx, in) } +type awsEc2query_serializeOpCreateCapacityReservationFleet struct { +} + +func (*awsEc2query_serializeOpCreateCapacityReservationFleet) ID() string { + return "OperationSerializer" +} + +func (m *awsEc2query_serializeOpCreateCapacityReservationFleet) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*CreateCapacityReservationFleetInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-www-form-urlencoded") + + bodyWriter := bytes.NewBuffer(nil) + bodyEncoder := query.NewEncoder(bodyWriter) + body := bodyEncoder.Object() + body.Key("Action").String("CreateCapacityReservationFleet") + body.Key("Version").String("2016-11-15") + + if err := awsEc2query_serializeOpDocumentCreateCapacityReservationFleetInput(input, bodyEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + err = bodyEncoder.Encode() + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(bodyWriter.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + type awsEc2query_serializeOpCreateCarrierGateway struct { } @@ -9928,6 +10040,62 @@ func (m *awsEc2query_serializeOpDescribeByoipCidrs) HandleSerialize(ctx context. return next.HandleSerialize(ctx, in) } +type awsEc2query_serializeOpDescribeCapacityReservationFleets struct { +} + +func (*awsEc2query_serializeOpDescribeCapacityReservationFleets) ID() string { + return "OperationSerializer" +} + +func (m *awsEc2query_serializeOpDescribeCapacityReservationFleets) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DescribeCapacityReservationFleetsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-www-form-urlencoded") + + bodyWriter := bytes.NewBuffer(nil) + bodyEncoder := query.NewEncoder(bodyWriter) + body := bodyEncoder.Object() + body.Key("Action").String("DescribeCapacityReservationFleets") + body.Key("Version").String("2016-11-15") + + if err := awsEc2query_serializeOpDocumentDescribeCapacityReservationFleetsInput(input, bodyEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + err = bodyEncoder.Encode() + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(bodyWriter.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + type awsEc2query_serializeOpDescribeCapacityReservations struct { } @@ -20568,6 +20736,62 @@ func (m *awsEc2query_serializeOpModifyCapacityReservation) HandleSerialize(ctx c return next.HandleSerialize(ctx, in) } +type awsEc2query_serializeOpModifyCapacityReservationFleet struct { +} + +func (*awsEc2query_serializeOpModifyCapacityReservationFleet) ID() string { + return "OperationSerializer" +} + +func (m *awsEc2query_serializeOpModifyCapacityReservationFleet) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*ModifyCapacityReservationFleetInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-www-form-urlencoded") + + bodyWriter := bytes.NewBuffer(nil) + bodyEncoder := query.NewEncoder(bodyWriter) + body := bodyEncoder.Object() + body.Key("Action").String("ModifyCapacityReservationFleet") + body.Key("Version").String("2016-11-15") + + if err := awsEc2query_serializeOpDocumentModifyCapacityReservationFleetInput(input, bodyEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + err = bodyEncoder.Encode() + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(bodyWriter.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + type awsEc2query_serializeOpModifyClientVpnEndpoint struct { } @@ -26440,6 +26664,19 @@ func awsEc2query_serializeDocumentBundleIdStringList(v []string, value query.Val return nil } +func awsEc2query_serializeDocumentCapacityReservationFleetIdSet(v []string, value query.Value) error { + if len(v) == 0 { + return nil + } + array := value.Array("Item") + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + func awsEc2query_serializeDocumentCapacityReservationIdSet(v []string, value query.Value) error { if len(v) == 0 { return nil @@ -31027,6 +31264,76 @@ func awsEc2query_serializeDocumentRequestSpotLaunchSpecificationSecurityGroupLis return nil } +func awsEc2query_serializeDocumentReservationFleetInstanceSpecification(v *types.ReservationFleetInstanceSpecification, value query.Value) error { + object := value.Object() + _ = object + + if v.AvailabilityZone != nil { + objectKey := object.Key("AvailabilityZone") + objectKey.String(*v.AvailabilityZone) + } + + if v.AvailabilityZoneId != nil { + objectKey := object.Key("AvailabilityZoneId") + objectKey.String(*v.AvailabilityZoneId) + } + + if v.EbsOptimized != nil { + objectKey := object.Key("EbsOptimized") + objectKey.Boolean(*v.EbsOptimized) + } + + if len(v.InstancePlatform) > 0 { + objectKey := object.Key("InstancePlatform") + objectKey.String(string(v.InstancePlatform)) + } + + if len(v.InstanceType) > 0 { + objectKey := object.Key("InstanceType") + objectKey.String(string(v.InstanceType)) + } + + if v.Priority != nil { + objectKey := object.Key("Priority") + objectKey.Integer(*v.Priority) + } + + if v.Weight != nil { + objectKey := object.Key("Weight") + switch { + case math.IsNaN(*v.Weight): + objectKey.String("NaN") + + case math.IsInf(*v.Weight, 1): + objectKey.String("Infinity") + + case math.IsInf(*v.Weight, -1): + objectKey.String("-Infinity") + + default: + objectKey.Double(*v.Weight) + + } + } + + return nil +} + +func awsEc2query_serializeDocumentReservationFleetInstanceSpecificationList(v []types.ReservationFleetInstanceSpecification, value query.Value) error { + if len(v) == 0 { + return nil + } + array := value.Array("Member") + + for i := range v { + av := array.Value() + if err := awsEc2query_serializeDocumentReservationFleetInstanceSpecification(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsEc2query_serializeDocumentReservedInstanceIdSet(v []string, value query.Value) error { if len(v) == 0 { return nil @@ -34403,6 +34710,25 @@ func awsEc2query_serializeOpDocumentCancelBundleTaskInput(v *CancelBundleTaskInp return nil } +func awsEc2query_serializeOpDocumentCancelCapacityReservationFleetsInput(v *CancelCapacityReservationFleetsInput, value query.Value) error { + object := value.Object() + _ = object + + if v.CapacityReservationFleetIds != nil { + objectKey := object.FlatKey("CapacityReservationFleetId") + if err := awsEc2query_serializeDocumentCapacityReservationFleetIdSet(v.CapacityReservationFleetIds, objectKey); err != nil { + return err + } + } + + if v.DryRun != nil { + objectKey := object.Key("DryRun") + objectKey.Boolean(*v.DryRun) + } + + return nil +} + func awsEc2query_serializeOpDocumentCancelCapacityReservationInput(v *CancelCapacityReservationInput, value query.Value) error { object := value.Object() _ = object @@ -34701,6 +35027,62 @@ func awsEc2query_serializeOpDocumentCopySnapshotInput(v *CopySnapshotInput, valu return nil } +func awsEc2query_serializeOpDocumentCreateCapacityReservationFleetInput(v *CreateCapacityReservationFleetInput, value query.Value) error { + object := value.Object() + _ = object + + if v.AllocationStrategy != nil { + objectKey := object.Key("AllocationStrategy") + objectKey.String(*v.AllocationStrategy) + } + + if v.ClientToken != nil { + objectKey := object.Key("ClientToken") + objectKey.String(*v.ClientToken) + } + + if v.DryRun != nil { + objectKey := object.Key("DryRun") + objectKey.Boolean(*v.DryRun) + } + + if v.EndDate != nil { + objectKey := object.Key("EndDate") + objectKey.String(smithytime.FormatDateTime(*v.EndDate)) + } + + if len(v.InstanceMatchCriteria) > 0 { + objectKey := object.Key("InstanceMatchCriteria") + objectKey.String(string(v.InstanceMatchCriteria)) + } + + if v.InstanceTypeSpecifications != nil { + objectKey := object.FlatKey("InstanceTypeSpecification") + if err := awsEc2query_serializeDocumentReservationFleetInstanceSpecificationList(v.InstanceTypeSpecifications, objectKey); err != nil { + return err + } + } + + if v.TagSpecifications != nil { + objectKey := object.FlatKey("TagSpecification") + if err := awsEc2query_serializeDocumentTagSpecificationList(v.TagSpecifications, objectKey); err != nil { + return err + } + } + + if len(v.Tenancy) > 0 { + objectKey := object.Key("Tenancy") + objectKey.String(string(v.Tenancy)) + } + + if v.TotalTargetCapacity != nil { + objectKey := object.Key("TotalTargetCapacity") + objectKey.Integer(*v.TotalTargetCapacity) + } + + return nil +} + func awsEc2query_serializeOpDocumentCreateCapacityReservationInput(v *CreateCapacityReservationInput, value query.Value) error { object := value.Object() _ = object @@ -38737,6 +39119,42 @@ func awsEc2query_serializeOpDocumentDescribeByoipCidrsInput(v *DescribeByoipCidr return nil } +func awsEc2query_serializeOpDocumentDescribeCapacityReservationFleetsInput(v *DescribeCapacityReservationFleetsInput, value query.Value) error { + object := value.Object() + _ = object + + if v.CapacityReservationFleetIds != nil { + objectKey := object.FlatKey("CapacityReservationFleetId") + if err := awsEc2query_serializeDocumentCapacityReservationFleetIdSet(v.CapacityReservationFleetIds, objectKey); err != nil { + return err + } + } + + if v.DryRun != nil { + objectKey := object.Key("DryRun") + objectKey.Boolean(*v.DryRun) + } + + if v.Filters != nil { + objectKey := object.FlatKey("Filter") + if err := awsEc2query_serializeDocumentFilterList(v.Filters, objectKey); err != nil { + return err + } + } + + if v.MaxResults != nil { + objectKey := object.Key("MaxResults") + objectKey.Integer(*v.MaxResults) + } + + if v.NextToken != nil { + objectKey := object.Key("NextToken") + objectKey.String(*v.NextToken) + } + + return nil +} + func awsEc2query_serializeOpDocumentDescribeCapacityReservationsInput(v *DescribeCapacityReservationsInput, value query.Value) error { object := value.Object() _ = object @@ -44481,6 +44899,38 @@ func awsEc2query_serializeOpDocumentModifyAvailabilityZoneGroupInput(v *ModifyAv return nil } +func awsEc2query_serializeOpDocumentModifyCapacityReservationFleetInput(v *ModifyCapacityReservationFleetInput, value query.Value) error { + object := value.Object() + _ = object + + if v.CapacityReservationFleetId != nil { + objectKey := object.Key("CapacityReservationFleetId") + objectKey.String(*v.CapacityReservationFleetId) + } + + if v.DryRun != nil { + objectKey := object.Key("DryRun") + objectKey.Boolean(*v.DryRun) + } + + if v.EndDate != nil { + objectKey := object.Key("EndDate") + objectKey.String(smithytime.FormatDateTime(*v.EndDate)) + } + + if v.RemoveEndDate != nil { + objectKey := object.Key("RemoveEndDate") + objectKey.Boolean(*v.RemoveEndDate) + } + + if v.TotalTargetCapacity != nil { + objectKey := object.Key("TotalTargetCapacity") + objectKey.Integer(*v.TotalTargetCapacity) + } + + return nil +} + func awsEc2query_serializeOpDocumentModifyCapacityReservationInput(v *ModifyCapacityReservationInput, value query.Value) error { object := value.Object() _ = object diff --git a/service/ec2/types/enums.go b/service/ec2/types/enums.go index 0cbed3c511f..d96d5f62b60 100644 --- a/service/ec2/types/enums.go +++ b/service/ec2/types/enums.go @@ -569,6 +569,39 @@ func (CancelSpotInstanceRequestState) Values() []CancelSpotInstanceRequestState } } +type CapacityReservationFleetState string + +// Enum values for CapacityReservationFleetState +const ( + CapacityReservationFleetStateSubmitted CapacityReservationFleetState = "submitted" + CapacityReservationFleetStateModifying CapacityReservationFleetState = "modifying" + CapacityReservationFleetStateActive CapacityReservationFleetState = "active" + CapacityReservationFleetStatePartiallyFulfilled CapacityReservationFleetState = "partially_fulfilled" + CapacityReservationFleetStateExpiring CapacityReservationFleetState = "expiring" + CapacityReservationFleetStateExpired CapacityReservationFleetState = "expired" + CapacityReservationFleetStateCancelling CapacityReservationFleetState = "cancelling" + CapacityReservationFleetStateCancelled CapacityReservationFleetState = "cancelled" + CapacityReservationFleetStateFailed CapacityReservationFleetState = "failed" +) + +// Values returns all known values for CapacityReservationFleetState. Note that +// this can be expanded in the future, and so it is only as up to date as the +// client. The ordering of this slice is not guaranteed to be stable across +// updates. +func (CapacityReservationFleetState) Values() []CapacityReservationFleetState { + return []CapacityReservationFleetState{ + "submitted", + "modifying", + "active", + "partially_fulfilled", + "expiring", + "expired", + "cancelling", + "cancelled", + "failed", + } +} + type CapacityReservationInstancePlatform string // Enum values for CapacityReservationInstancePlatform @@ -1491,6 +1524,23 @@ func (FleetActivityStatus) Values() []FleetActivityStatus { } } +type FleetCapacityReservationTenancy string + +// Enum values for FleetCapacityReservationTenancy +const ( + FleetCapacityReservationTenancyDefault FleetCapacityReservationTenancy = "default" +) + +// Values returns all known values for FleetCapacityReservationTenancy. Note that +// this can be expanded in the future, and so it is only as up to date as the +// client. The ordering of this slice is not guaranteed to be stable across +// updates. +func (FleetCapacityReservationTenancy) Values() []FleetCapacityReservationTenancy { + return []FleetCapacityReservationTenancy{ + "default", + } +} + type FleetCapacityReservationUsageStrategy string // Enum values for FleetCapacityReservationUsageStrategy @@ -1547,6 +1597,22 @@ func (FleetExcessCapacityTerminationPolicy) Values() []FleetExcessCapacityTermin } } +type FleetInstanceMatchCriteria string + +// Enum values for FleetInstanceMatchCriteria +const ( + FleetInstanceMatchCriteriaOpen FleetInstanceMatchCriteria = "open" +) + +// Values returns all known values for FleetInstanceMatchCriteria. Note that this +// can be expanded in the future, and so it is only as up to date as the client. +// The ordering of this slice is not guaranteed to be stable across updates. +func (FleetInstanceMatchCriteria) Values() []FleetInstanceMatchCriteria { + return []FleetInstanceMatchCriteria{ + "open", + } +} + type FleetOnDemandAllocationStrategy string // Enum values for FleetOnDemandAllocationStrategy diff --git a/service/ec2/types/types.go b/service/ec2/types/types.go index ea6f9471fde..19473417e5b 100644 --- a/service/ec2/types/types.go +++ b/service/ec2/types/types.go @@ -90,7 +90,7 @@ type Address struct { InstanceId *string // The name of the unique set of Availability Zones, Local Zones, or Wavelength - // Zones from which AWS advertises IP addresses. + // Zones from which Amazon Web Services advertises IP addresses. NetworkBorderGroup *string // The ID of the network interface. @@ -610,6 +610,18 @@ type ByoipCidr struct { noSmithyDocumentSerde } +// Describes a Capacity Reservation Fleet cancellation error. +type CancelCapacityReservationFleetError struct { + + // The error code. + Code *string + + // The error message. + Message *string + + noSmithyDocumentSerde +} + // Describes a request to cancel a Spot Instance. type CancelledSpotInstanceRequest struct { @@ -677,6 +689,11 @@ type CapacityReservation struct { // The Amazon Resource Name (ARN) of the Capacity Reservation. CapacityReservationArn *string + // The ID of the Capacity Reservation Fleet to which the Capacity Reservation + // belongs. Only valid for Capacity Reservations that were created by a Capacity + // Reservation Fleet. + CapacityReservationFleetId *string + // The ID of the Capacity Reservation. CapacityReservationId *string @@ -786,6 +803,122 @@ type CapacityReservation struct { noSmithyDocumentSerde } +// Information about a Capacity Reservation Fleet. +type CapacityReservationFleet struct { + + // The strategy used by the Capacity Reservation Fleet to determine which of the + // specified instance types to use. For more information, see For more information, + // see Allocation strategy + // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#allocation-strategy) + // in the Amazon EC2 User Guide. + AllocationStrategy *string + + // The ARN of the Capacity Reservation Fleet. + CapacityReservationFleetArn *string + + // The ID of the Capacity Reservation Fleet. + CapacityReservationFleetId *string + + // The date and time at which the Capacity Reservation Fleet was created. + CreateTime *time.Time + + // The date and time at which the Capacity Reservation Fleet expires. + EndDate *time.Time + + // Indicates the type of instance launches that the Capacity Reservation Fleet + // accepts. All Capacity Reservations in the Fleet inherit this instance matching + // criteria. Currently, Capacity Reservation Fleets support open instance matching + // criteria only. This means that instances that have matching attributes (instance + // type, platform, and Availability Zone) run in the Capacity Reservations + // automatically. Instances do not need to explicitly target a Capacity Reservation + // Fleet to use its reserved capacity. + InstanceMatchCriteria FleetInstanceMatchCriteria + + // Information about the instance types for which to reserve the capacity. + InstanceTypeSpecifications []FleetCapacityReservation + + // The state of the Capacity Reservation Fleet. Possible states include: + // + // * + // submitted - The Capacity Reservation Fleet request has been submitted and Amazon + // Elastic Compute Cloud is preparing to create the Capacity Reservations. + // + // * + // modifying - The Capacity Reservation Fleet is being modified. The Fleet remains + // in this state until the modification is complete. + // + // * active - The Capacity + // Reservation Fleet has fulfilled its total target capacity and it is attempting + // to maintain this capacity. The Fleet remains in this state until it is modified + // or deleted. + // + // * partially_fulfilled - The Capacity Reservation Fleet has + // partially fulfilled its total target capacity. There is insufficient Amazon EC2 + // to fulfill the total target capacity. The Fleet is attempting to asynchronously + // fulfill its total target capacity. + // + // * expiring - The Capacity Reservation Fleet + // has reach its end date and it is in the process of expiring. One or more of its + // Capacity reservations might still be active. + // + // * expired - The Capacity + // Reservation Fleet has reach its end date. The Fleet and its Capacity + // Reservations are expired. The Fleet can't create new Capacity Reservations. + // + // * + // cancelling - The Capacity Reservation Fleet is in the process of being + // cancelled. One or more of its Capacity reservations might still be active. + // + // * + // cancelled - The Capacity Reservation Fleet has been manually cancelled. The + // Fleet and its Capacity Reservations are cancelled and the Fleet can't create new + // Capacity Reservations. + // + // * failed - The Capacity Reservation Fleet failed to + // reserve capacity for the specified instance types. + State CapacityReservationFleetState + + // The tags assigned to the Capacity Reservation Fleet. + Tags []Tag + + // The tenancy of the Capacity Reservation Fleet. Tenancies include: + // + // * default - + // The Capacity Reservation Fleet is created on hardware that is shared with other + // Amazon Web Services accounts. + // + // * dedicated - The Capacity Reservation Fleet is + // created on single-tenant hardware that is dedicated to a single Amazon Web + // Services account. + Tenancy FleetCapacityReservationTenancy + + // The capacity units that have been fulfilled. + TotalFulfilledCapacity *float64 + + // The total number of capacity units for which the Capacity Reservation Fleet + // reserves capacity. For more information, see Total target capacity + // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#target-capacity) + // in the Amazon EC2 User Guide. + TotalTargetCapacity *int32 + + noSmithyDocumentSerde +} + +// Describes a Capacity Reservation Fleet that was successfully cancelled. +type CapacityReservationFleetCancellationState struct { + + // The ID of the Capacity Reservation Fleet that was successfully cancelled. + CapacityReservationFleetId *string + + // The current state of the Capacity Reservation Fleet. + CurrentFleetState CapacityReservationFleetState + + // The previous state of the Capacity Reservation Fleet. + PreviousFleetState CapacityReservationFleetState + + noSmithyDocumentSerde +} + // Describes a resource group to which a Capacity Reservation has been added. type CapacityReservationGroup struct { @@ -1395,10 +1528,10 @@ type CoipAddressUsage struct { // The allocation ID of the address. AllocationId *string - // The AWS account ID. + // The Amazon Web Services account ID. AwsAccountId *string - // The AWS service. + // The Amazon Web Services service. AwsService *string // The customer-owned IP address. @@ -2599,63 +2732,82 @@ type EventInformation struct { // The description of the event. EventDescription *string - // The event. The following are the error events: + // The event. error events: // - // * iamFleetRoleInvalid - The EC2 - // Fleet or Spot Fleet did not have the required permissions either to launch or - // terminate an instance. + // * iamFleetRoleInvalid - The EC2 Fleet or Spot Fleet + // does not have the required permissions either to launch or terminate an + // instance. // - // * spotFleetRequestConfigurationInvalid - The - // configuration is not valid. For more information, see the description of the - // event. + // * allLaunchSpecsTemporarilyBlacklisted - None of the configurations + // are valid, and several attempts to launch instances have failed. For more + // information, see the description of the event. // - // * spotInstanceCountLimitExceeded - You've reached the limit on the - // number of Spot Instances that you can launch. + // * spotInstanceCountLimitExceeded + // - You've reached the limit on the number of Spot Instances that you can + // launch. + // + // * spotFleetRequestConfigurationInvalid - The configuration is not + // valid. For more information, see the description of the + // event. // - // The following are the // fleetRequestChange events: // - // * active - The EC2 Fleet or Spot Fleet request has - // been validated and Amazon EC2 is attempting to maintain the target number of - // running Spot Instances. + // * active - The EC2 Fleet or Spot Fleet + // request has been validated and Amazon EC2 is attempting to maintain the target + // number of running instances. // - // * cancelled - The EC2 Fleet or Spot Fleet request is - // canceled and has no running Spot Instances. The EC2 Fleet or Spot Fleet will be - // deleted two days after its instances were terminated. + // * cancelled - The EC2 Fleet or Spot Fleet request + // is canceled and has no running instances. The EC2 Fleet or Spot Fleet will be + // deleted two days after its instances are terminated. // // * cancelled_running - The - // EC2 Fleet or Spot Fleet request is canceled and does not launch additional Spot - // Instances. Existing Spot Instances continue to run until they are interrupted or - // terminated. + // EC2 Fleet or Spot Fleet request is canceled and does not launch additional + // instances. Its existing instances continue to run until they are interrupted or + // terminated. The request remains in this state until all instances are + // interrupted or terminated. // - // * cancelled_terminating - The EC2 Fleet or Spot Fleet request is - // canceled and its Spot Instances are terminating. + // * cancelled_terminating - The EC2 Fleet or Spot + // Fleet request is canceled and its instances are terminating. The request remains + // in this state until all instances are terminated. // // * expired - The EC2 Fleet or - // Spot Fleet request has expired. A subsequent event indicates that the instances - // were terminated, if the request was created with - // TerminateInstancesWithExpiration set. + // Spot Fleet request has expired. If the request was created with + // TerminateInstancesWithExpiration set, a subsequent terminated event indicates + // that the instances are terminated. // - // * modify_in_progress - A request to - // modify the EC2 Fleet or Spot Fleet request was accepted and is in progress. + // * modify_in_progress - The EC2 Fleet or Spot + // Fleet request is being modified. The request remains in this state until the + // modification is fully processed. // - // * - // modify_succeeded - The EC2 Fleet or Spot Fleet request was modified. + // * modify_succeeded - The EC2 Fleet or Spot + // Fleet request was modified. // - // * - // submitted - The EC2 Fleet or Spot Fleet request is being evaluated and Amazon - // EC2 is preparing to launch the target number of Spot Instances. + // * submitted - The EC2 Fleet or Spot Fleet request + // is being evaluated and Amazon EC2 is preparing to launch the target number of + // instances. // - // The following - // are the instanceChange events: + // * progress - The EC2 Fleet or Spot Fleet request is in the process + // of being fulfilled. // - // * launched - A request was fulfilled and a new - // instance was launched. + // instanceChange events: // - // * terminated - An instance was terminated by the - // user. + // * launched - A new instance was + // launched. + // + // * terminated - An instance was terminated by the user. + // + // * + // termination_notified - An instance termination notification was sent when a Spot + // Instance was terminated by Amazon EC2 during scale-down, when the target + // capacity of the fleet was modified down, for example, from a target capacity of + // 4 to a target capacity of 3. + // + // Information events: // - // The following are the Information events: + // * fleetProgressHalted - The + // price in every launch specification is not valid because it is below the Spot + // price (all the launch specifications have produced launchSpecUnusable events). A + // launch specification might become valid if the Spot price changes. // // * // launchSpecTemporarilyBlacklisted - The configuration is not valid and several @@ -2663,12 +2815,11 @@ type EventInformation struct { // description of the event. // // * launchSpecUnusable - The price in a launch - // specification is not valid because it is below the Spot price or the Spot price - // is above the On-Demand price. + // specification is not valid because it is below the Spot price. // - // * fleetProgressHalted - The price in every launch - // specification is not valid. A launch specification might become valid if the - // Spot price changes. + // * + // registerWithLoadBalancersFailed - An attempt to register instances with load + // balancers failed. For more information, see the description of the event. EventSubType *string // The ID of the instance. This information is available only for instanceChange @@ -2952,6 +3103,18 @@ type ExportToS3TaskSpecification struct { noSmithyDocumentSerde } +// Describes a Capacity Reservation Fleet that could not be cancelled. +type FailedCapacityReservationFleetCancellationResult struct { + + // Information about the Capacity Reservation Fleet cancellation error. + CancelCapacityReservationFleetError *CancelCapacityReservationFleetError + + // The ID of the Capacity Reservation Fleet that could not be cancelled. + CapacityReservationFleetId *string + + noSmithyDocumentSerde +} + // Describes a Reserved Instance whose queued purchase was not deleted. type FailedQueuedPurchaseDeletion struct { @@ -3004,6 +3167,58 @@ type Filter struct { noSmithyDocumentSerde } +// Information about a Capacity Reservation in a Capacity Reservation Fleet. +type FleetCapacityReservation struct { + + // The Availability Zone in which the Capacity Reservation reserves capacity. + AvailabilityZone *string + + // The ID of the Availability Zone in which the Capacity Reservation reserves + // capacity. + AvailabilityZoneId *string + + // The ID of the Capacity Reservation. + CapacityReservationId *string + + // The date and time at which the Capacity Reservation was created. + CreateDate *time.Time + + // Indicates whether the Capacity Reservation reserves capacity for EBS-optimized + // instance types. + EbsOptimized *bool + + // The number of capacity units fulfilled by the Capacity Reservation. For more + // information, see Total target capacity + // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#target-capacity) + // in the Amazon EC2 User Guide. + FulfilledCapacity *float64 + + // The type of operating system for which the Capacity Reservation reserves + // capacity. + InstancePlatform CapacityReservationInstancePlatform + + // The instance type for which the Capacity Reservation reserves capacity. + InstanceType InstanceType + + // The priority of the instance type in the Capacity Reservation Fleet. For more + // information, see Instance type priority + // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#instance-priority) + // in the Amazon EC2 User Guide. + Priority *int32 + + // The total number of instances for which the Capacity Reservation reserves + // capacity. + TotalInstanceCount *int32 + + // The weight of the instance type in the Capacity Reservation Fleet. For more + // information, see Instance type weight + // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#instance-weight) + // in the Amazon EC2 User Guide. + Weight *float64 + + noSmithyDocumentSerde +} + // Describes an EC2 Fleet. type FleetData struct { @@ -3429,7 +3644,7 @@ type FpgaImage struct { // aws-marketplace. OwnerAlias *string - // The AWS account ID of the AFI owner. + // The ID of the Amazon Web Services account that owns the AFI. OwnerId *string // Information about the PCI bus. @@ -3441,7 +3656,8 @@ type FpgaImage struct { // Indicates whether the AFI is public. Public *bool - // The version of the AWS Shell that was used to create the bitstream. + // The version of the Amazon Web Services Shell that was used to create the + // bitstream. ShellVersion *string // Information about the state of the AFI. @@ -4765,9 +4981,9 @@ type InstanceMarketOptionsRequest struct { // The metadata options for the instance. type InstanceMetadataOptionsRequest struct { - // This parameter enables or disables the HTTP metadata endpoint on your instances. - // If the parameter is not specified, the default state is enabled. If you specify - // a value of disabled, you will not be able to access your instance metadata. + // Enables or disables the HTTP metadata endpoint on your instances. If the + // parameter is not specified, the default state is enabled. If you specify a value + // of disabled, you will not be able to access your instance metadata. HttpEndpoint InstanceMetadataEndpointState // Enables or disables the IPv6 endpoint for the instance metadata service. @@ -4796,13 +5012,12 @@ type InstanceMetadataOptionsRequest struct { // The metadata options for the instance. type InstanceMetadataOptionsResponse struct { - // This parameter enables or disables the HTTP metadata endpoint on your instances. - // If the parameter is not specified, the default state is enabled. If you specify - // a value of disabled, you will not be able to access your instance metadata. + // Indicates whether the HTTP metadata endpoint on your instances is enabled or + // disabled. HttpEndpoint InstanceMetadataEndpointState - // Whether or not the IPv6 endpoint for the instance metadata service is enabled or - // disabled. + // Indicates whether the IPv6 endpoint for the instance metadata service is enabled + // or disabled. HttpProtocolIpv6 InstanceMetadataProtocolState // The desired HTTP PUT response hop limit for instance metadata requests. The @@ -6626,7 +6841,7 @@ type LoadPermission struct { // The name of the group. Group PermissionGroup - // The AWS account ID. + // The Amazon Web Services account ID. UserId *string noSmithyDocumentSerde @@ -6650,7 +6865,7 @@ type LoadPermissionRequest struct { // The name of the group. Group PermissionGroup - // The AWS account ID. + // The Amazon Web Services account ID. UserId *string noSmithyDocumentSerde @@ -6665,7 +6880,7 @@ type LocalGateway struct { // The Amazon Resource Name (ARN) of the Outpost. OutpostArn *string - // The AWS account ID that owns the local gateway. + // The ID of the Amazon Web Services account that owns the local gateway. OwnerId *string // The state of the local gateway. @@ -6692,7 +6907,7 @@ type LocalGatewayRoute struct { // The ID of the virtual interface group. LocalGatewayVirtualInterfaceGroupId *string - // The AWS account ID that owns the local gateway route. + // The ID of the Amazon Web Services account that owns the local gateway route. OwnerId *string // The state of the route. @@ -6719,7 +6934,8 @@ type LocalGatewayRouteTable struct { // The Amazon Resource Name (ARN) of the Outpost. OutpostArn *string - // The AWS account ID that owns the local gateway route table. + // The ID of the Amazon Web Services account that owns the local gateway route + // table. OwnerId *string // The state of the local gateway route table. @@ -6751,8 +6967,8 @@ type LocalGatewayRouteTableVirtualInterfaceGroupAssociation struct { // The ID of the virtual interface group. LocalGatewayVirtualInterfaceGroupId *string - // The AWS account ID that owns the local gateway virtual interface group - // association. + // The ID of the Amazon Web Services account that owns the local gateway virtual + // interface group association. OwnerId *string // The state of the association. @@ -6780,7 +6996,8 @@ type LocalGatewayRouteTableVpcAssociation struct { // The ID of the association. LocalGatewayRouteTableVpcAssociationId *string - // The AWS account ID that owns the local gateway route table for the association. + // The ID of the Amazon Web Services account that owns the local gateway route + // table for the association. OwnerId *string // The state of the association. @@ -6811,7 +7028,8 @@ type LocalGatewayVirtualInterface struct { // The ID of the virtual interface. LocalGatewayVirtualInterfaceId *string - // The AWS account ID that owns the local gateway virtual interface. + // The ID of the Amazon Web Services account that owns the local gateway virtual + // interface. OwnerId *string // The peer address. @@ -6841,7 +7059,8 @@ type LocalGatewayVirtualInterfaceGroup struct { // The IDs of the virtual interfaces. LocalGatewayVirtualInterfaceIds []string - // The AWS account ID that owns the local gateway virtual interface group. + // The ID of the Amazon Web Services account that owns the local gateway virtual + // interface group. OwnerId *string // The tags assigned to the virtual interface group. @@ -8762,6 +8981,55 @@ type Reservation struct { noSmithyDocumentSerde } +// Information about an instance type to use in a Capacity Reservation Fleet. +type ReservationFleetInstanceSpecification struct { + + // The Availability Zone in which the Capacity Reservation Fleet reserves the + // capacity. A Capacity Reservation Fleet can't span Availability Zones. All + // instance type specifications that you specify for the Fleet must use the same + // Availability Zone. + AvailabilityZone *string + + // The ID of the Availability Zone in which the Capacity Reservation Fleet reserves + // the capacity. A Capacity Reservation Fleet can't span Availability Zones. All + // instance type specifications that you specify for the Fleet must use the same + // Availability Zone. + AvailabilityZoneId *string + + // Indicates whether the Capacity Reservation Fleet supports EBS-optimized + // instances types. This optimization provides dedicated throughput to Amazon EBS + // and an optimized configuration stack to provide optimal I/O performance. This + // optimization isn't available with all instance types. Additional usage charges + // apply when using EBS-optimized instance types. + EbsOptimized *bool + + // The type of operating system for which the Capacity Reservation Fleet reserves + // capacity. + InstancePlatform CapacityReservationInstancePlatform + + // The instance type for which the Capacity Reservation Fleet reserves capacity. + InstanceType InstanceType + + // The priority to assign to the instance type. This value is used to determine + // which of the instance types specified for the Fleet should be prioritized for + // use. A lower value indicates a high priority. For more information, see Instance + // type priority + // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#instance-priority) + // in the Amazon EC2 User Guide. + Priority *int32 + + // The number of capacity units provided by the specified instance type. This + // value, together with the total target capacity that you specify for the Fleet + // determine the number of instances for which the Fleet reserves capacity. Both + // values are based on units that make sense for your workload. For more + // information, see Total target capacity + // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#target-capacity) + // in the Amazon EC2 User Guide. + Weight *float64 + + noSmithyDocumentSerde +} + // The cost associated with the Reserved Instance. type ReservationValue struct { @@ -9900,8 +10168,8 @@ type SecurityGroupRuleUpdate struct { // Describes a service configuration for a VPC endpoint service. type ServiceConfiguration struct { - // Indicates whether requests from other AWS accounts to create an endpoint to the - // service must first be accepted. + // Indicates whether requests from other Amazon Web Services accounts to create an + // endpoint to the service must first be accepted. AcceptanceRequired *bool // The Availability Zones in which the service is available. @@ -9961,7 +10229,7 @@ type ServiceDetail struct { // service VPC endpoints using the VPC endpoint API is restricted. ManagesVpcEndpoints *bool - // The AWS account ID of the service owner. + // The Amazon Web Services account ID of the service owner. Owner *string // The private DNS name for the service. @@ -11258,23 +11526,7 @@ type TagDescription struct { // The tags to apply to a resource when the resource is being created. type TagSpecification struct { - // The type of resource to tag on creation. The possible values are: - // capacity-reservation | carrier-gateway | client-vpn-endpoint | customer-gateway - // | dedicated-host | dhcp-options | egress-only-internet-gateway | elastic-gpu | - // elastic-ip | export-image-task | export-instance-task | fleet | fpga-image | - // host-reservation | image | import-image-task | import-snapshot-task | instance | - // instance-event-window | internet-gateway | ipv4pool-ec2 | ipv6pool-ec2 | - // key-pair | launch-template | local-gateway-route-table-vpc-association | - // natgateway | network-acl | network-insights-analysis | network-insights-path | - // network-interface | placement-group | prefix-list | reserved-instances | - // route-table | security-group | security-group-rule | snapshot | - // spot-fleet-request | spot-instances-request | subnet | traffic-mirror-filter | - // traffic-mirror-session | traffic-mirror-target | transit-gateway | - // transit-gateway-attachment | transit-gateway-multicast-domain | - // transit-gateway-route-table | volume | vpc | vpc-endpoint | vpc-endpoint-service - // | vpc-flow-log | vpc-peering-connection | vpn-connection | vpn-gateway. To tag a - // resource after it has been created, see CreateTags - // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html). + // The type of resource to tag on creation. ResourceType ResourceType // The tags to apply to the resource. @@ -13012,7 +13264,7 @@ type VpcEndpoint struct { // (Interface endpoint) One or more network interfaces for the endpoint. NetworkInterfaceIds []string - // The ID of the AWS account that owns the VPC endpoint. + // The ID of the Amazon Web Services account that owns the VPC endpoint. OwnerId *string // The policy document associated with the endpoint, if applicable. @@ -13073,7 +13325,7 @@ type VpcEndpointConnection struct { // The ID of the VPC endpoint. VpcEndpointId *string - // The AWS account ID of the owner of the VPC endpoint. + // The ID of the Amazon Web Services account that owns the VPC endpoint. VpcEndpointOwner *string // The state of the VPC endpoint. @@ -13098,7 +13350,7 @@ type VpcIpv6CidrBlockAssociation struct { Ipv6Pool *string // The name of the unique set of Availability Zones, Local Zones, or Wavelength - // Zones from which AWS advertises IP addresses, for example, + // Zones from which Amazon Web Services advertises IP addresses, for example, // us-east-1-wl1-bos-wlz-1. NetworkBorderGroup *string diff --git a/service/ec2/validators.go b/service/ec2/validators.go index d8ae75098ae..4b4a8e83efa 100644 --- a/service/ec2/validators.go +++ b/service/ec2/validators.go @@ -550,6 +550,26 @@ func (m *validateOpCancelBundleTask) HandleInitialize(ctx context.Context, in mi return next.HandleInitialize(ctx, in) } +type validateOpCancelCapacityReservationFleets struct { +} + +func (*validateOpCancelCapacityReservationFleets) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCancelCapacityReservationFleets) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CancelCapacityReservationFleetsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCancelCapacityReservationFleetsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpCancelCapacityReservation struct { } @@ -750,6 +770,26 @@ func (m *validateOpCopySnapshot) HandleInitialize(ctx context.Context, in middle return next.HandleInitialize(ctx, in) } +type validateOpCreateCapacityReservationFleet struct { +} + +func (*validateOpCreateCapacityReservationFleet) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateCapacityReservationFleet) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateCapacityReservationFleetInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateCapacityReservationFleetInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpCreateCapacityReservation struct { } @@ -4430,6 +4470,26 @@ func (m *validateOpModifyAvailabilityZoneGroup) HandleInitialize(ctx context.Con return next.HandleInitialize(ctx, in) } +type validateOpModifyCapacityReservationFleet struct { +} + +func (*validateOpModifyCapacityReservationFleet) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpModifyCapacityReservationFleet) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ModifyCapacityReservationFleetInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpModifyCapacityReservationFleetInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpModifyCapacityReservation struct { } @@ -6338,6 +6398,10 @@ func addOpCancelBundleTaskValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCancelBundleTask{}, middleware.After) } +func addOpCancelCapacityReservationFleetsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCancelCapacityReservationFleets{}, middleware.After) +} + func addOpCancelCapacityReservationValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCancelCapacityReservation{}, middleware.After) } @@ -6378,6 +6442,10 @@ func addOpCopySnapshotValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCopySnapshot{}, middleware.After) } +func addOpCreateCapacityReservationFleetValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateCapacityReservationFleet{}, middleware.After) +} + func addOpCreateCapacityReservationValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateCapacityReservation{}, middleware.After) } @@ -7114,6 +7182,10 @@ func addOpModifyAvailabilityZoneGroupValidationMiddleware(stack *middleware.Stac return stack.Initialize.Add(&validateOpModifyAvailabilityZoneGroup{}, middleware.After) } +func addOpModifyCapacityReservationFleetValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpModifyCapacityReservationFleet{}, middleware.After) +} + func addOpModifyCapacityReservationValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpModifyCapacityReservation{}, middleware.After) } @@ -8506,6 +8578,21 @@ func validateOpCancelBundleTaskInput(v *CancelBundleTaskInput) error { } } +func validateOpCancelCapacityReservationFleetsInput(v *CancelCapacityReservationFleetsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CancelCapacityReservationFleetsInput"} + if v.CapacityReservationFleetIds == nil { + invalidParams.Add(smithy.NewErrParamRequired("CapacityReservationFleetIds")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpCancelCapacityReservationInput(v *CancelCapacityReservationInput) error { if v == nil { return nil @@ -8674,6 +8761,24 @@ func validateOpCopySnapshotInput(v *CopySnapshotInput) error { } } +func validateOpCreateCapacityReservationFleetInput(v *CreateCapacityReservationFleetInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateCapacityReservationFleetInput"} + if v.InstanceTypeSpecifications == nil { + invalidParams.Add(smithy.NewErrParamRequired("InstanceTypeSpecifications")) + } + if v.TotalTargetCapacity == nil { + invalidParams.Add(smithy.NewErrParamRequired("TotalTargetCapacity")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpCreateCapacityReservationInput(v *CreateCapacityReservationInput) error { if v == nil { return nil @@ -9344,12 +9449,12 @@ func validateOpCreateSubnetInput(v *CreateSubnetInput) error { return nil } invalidParams := smithy.InvalidParamsError{Context: "CreateSubnetInput"} - if v.VpcId == nil { - invalidParams.Add(smithy.NewErrParamRequired("VpcId")) - } if v.CidrBlock == nil { invalidParams.Add(smithy.NewErrParamRequired("CidrBlock")) } + if v.VpcId == nil { + invalidParams.Add(smithy.NewErrParamRequired("VpcId")) + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -11791,6 +11896,21 @@ func validateOpModifyAvailabilityZoneGroupInput(v *ModifyAvailabilityZoneGroupIn } } +func validateOpModifyCapacityReservationFleetInput(v *ModifyCapacityReservationFleetInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ModifyCapacityReservationFleetInput"} + if v.CapacityReservationFleetId == nil { + invalidParams.Add(smithy.NewErrParamRequired("CapacityReservationFleetId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpModifyCapacityReservationInput(v *ModifyCapacityReservationInput) error { if v == nil { return nil @@ -13116,9 +13236,6 @@ func validateOpSearchLocalGatewayRoutesInput(v *SearchLocalGatewayRoutesInput) e if v.LocalGatewayRouteTableId == nil { invalidParams.Add(smithy.NewErrParamRequired("LocalGatewayRouteTableId")) } - if v.Filters == nil { - invalidParams.Add(smithy.NewErrParamRequired("Filters")) - } if invalidParams.Len() > 0 { return invalidParams } else { diff --git a/service/efs/deserializers.go b/service/efs/deserializers.go index 49150fefb46..5d9781df929 100644 --- a/service/efs/deserializers.go +++ b/service/efs/deserializers.go @@ -3282,6 +3282,9 @@ func awsRestjson1_deserializeOpErrorPutAccountPreferences(response *smithyhttp.R } switch { + case strings.EqualFold("BadRequest", errorCode): + return awsRestjson1_deserializeErrorBadRequest(response, errorBody) + case strings.EqualFold("InternalServerError", errorCode): return awsRestjson1_deserializeErrorInternalServerError(response, errorBody) diff --git a/service/elasticloadbalancingv2/api_op_CreateTargetGroup.go b/service/elasticloadbalancingv2/api_op_CreateTargetGroup.go index 083c0b5f976..50127a333c1 100644 --- a/service/elasticloadbalancingv2/api_op_CreateTargetGroup.go +++ b/service/elasticloadbalancingv2/api_op_CreateTargetGroup.go @@ -99,6 +99,11 @@ type CreateTargetGroupInput struct { // default is 3. If the target type is lambda, the default is 5. HealthyThresholdCount *int32 + // The type of IP address used for this target group. The possible values are ipv4 + // and ipv6. This is an optional parameter. If not specified, the IP address type + // defaults to ipv4. + IpAddressType types.TargetGroupIpAddressTypeEnum + // [HTTP/HTTPS health checks] The HTTP or gRPC codes to use when checking for a // successful response from a target. Matcher *types.Matcher diff --git a/service/elasticloadbalancingv2/deserializers.go b/service/elasticloadbalancingv2/deserializers.go index c51718e241a..ef0a55a9b09 100644 --- a/service/elasticloadbalancingv2/deserializers.go +++ b/service/elasticloadbalancingv2/deserializers.go @@ -10886,6 +10886,19 @@ func awsAwsquery_deserializeDocumentTargetGroup(v **types.TargetGroup, decoder s sv.HealthyThresholdCount = ptr.Int32(int32(i64)) } + case strings.EqualFold("IpAddressType", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.IpAddressType = types.TargetGroupIpAddressTypeEnum(xtv) + } + case strings.EqualFold("LoadBalancerArns", t.Name.Local): nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) if err := awsAwsquery_deserializeDocumentLoadBalancerArns(&sv.LoadBalancerArns, nodeDecoder); err != nil { diff --git a/service/elasticloadbalancingv2/serializers.go b/service/elasticloadbalancingv2/serializers.go index f67674e1577..af87e12e752 100644 --- a/service/elasticloadbalancingv2/serializers.go +++ b/service/elasticloadbalancingv2/serializers.go @@ -3129,6 +3129,11 @@ func awsAwsquery_serializeOpDocumentCreateTargetGroupInput(v *CreateTargetGroupI objectKey.Integer(*v.HealthyThresholdCount) } + if len(v.IpAddressType) > 0 { + objectKey := object.Key("IpAddressType") + objectKey.String(string(v.IpAddressType)) + } + if v.Matcher != nil { objectKey := object.Key("Matcher") if err := awsAwsquery_serializeDocumentMatcher(v.Matcher, objectKey); err != nil { diff --git a/service/elasticloadbalancingv2/types/enums.go b/service/elasticloadbalancingv2/types/enums.go index 9169ce741c4..5248aa95e06 100644 --- a/service/elasticloadbalancingv2/types/enums.go +++ b/service/elasticloadbalancingv2/types/enums.go @@ -192,6 +192,24 @@ func (RedirectActionStatusCodeEnum) Values() []RedirectActionStatusCodeEnum { } } +type TargetGroupIpAddressTypeEnum string + +// Enum values for TargetGroupIpAddressTypeEnum +const ( + TargetGroupIpAddressTypeEnumIpv4 TargetGroupIpAddressTypeEnum = "ipv4" + TargetGroupIpAddressTypeEnumIpv6 TargetGroupIpAddressTypeEnum = "ipv6" +) + +// Values returns all known values for TargetGroupIpAddressTypeEnum. Note that this +// can be expanded in the future, and so it is only as up to date as the client. +// The ordering of this slice is not guaranteed to be stable across updates. +func (TargetGroupIpAddressTypeEnum) Values() []TargetGroupIpAddressTypeEnum { + return []TargetGroupIpAddressTypeEnum{ + "ipv4", + "ipv6", + } +} + type TargetHealthReasonEnum string // Enum values for TargetHealthReasonEnum diff --git a/service/elasticloadbalancingv2/types/types.go b/service/elasticloadbalancingv2/types/types.go index b7069712c83..3a1cb5d6d76 100644 --- a/service/elasticloadbalancingv2/types/types.go +++ b/service/elasticloadbalancingv2/types/types.go @@ -590,7 +590,8 @@ type Matcher struct { // For Application Load Balancers, you can specify values between 200 and 499, and // the default value is 200. You can specify multiple values (for example, // "200,202") or a range of values (for example, "200-299"). For Network Load - // Balancers and Gateway Load Balancers, this must be "200–399". + // Balancers and Gateway Load Balancers, this must be "200–399". Note that when + // using shorthand syntax, some values such as commas need to be escaped. HttpCode *string noSmithyDocumentSerde @@ -951,6 +952,11 @@ type TargetGroup struct { // unhealthy target healthy. HealthyThresholdCount *int32 + // The type of IP address used for this target group. The possible values are ipv4 + // and ipv6. This is an optional parameter. If not specified, the IP address type + // defaults to ipv4. + IpAddressType TargetGroupIpAddressTypeEnum + // The Amazon Resource Names (ARN) of the load balancers that route traffic to this // target group. LoadBalancerArns []string diff --git a/service/firehose/api_op_CreateDeliveryStream.go b/service/firehose/api_op_CreateDeliveryStream.go index 43fcd03abc1..134a52bb90d 100644 --- a/service/firehose/api_op_CreateDeliveryStream.go +++ b/service/firehose/api_op_CreateDeliveryStream.go @@ -94,6 +94,8 @@ type CreateDeliveryStreamInput struct { // This member is required. DeliveryStreamName *string + AmazonopensearchserviceDestinationConfiguration *types.AmazonopensearchserviceDestinationConfiguration + // Used to specify the type and Amazon Resource Name (ARN) of the KMS key needed // for Server-Side Encryption (SSE). DeliveryStreamEncryptionConfigurationInput *types.DeliveryStreamEncryptionConfigurationInput diff --git a/service/firehose/api_op_UpdateDestination.go b/service/firehose/api_op_UpdateDestination.go index dad206de112..36e93cbd3c6 100644 --- a/service/firehose/api_op_UpdateDestination.go +++ b/service/firehose/api_op_UpdateDestination.go @@ -72,6 +72,8 @@ type UpdateDestinationInput struct { // This member is required. DestinationId *string + AmazonopensearchserviceDestinationUpdate *types.AmazonopensearchserviceDestinationUpdate + // Describes an update for a destination in Amazon ES. ElasticsearchDestinationUpdate *types.ElasticsearchDestinationUpdate diff --git a/service/firehose/deserializers.go b/service/firehose/deserializers.go index 6fa06fe827f..7009aa05b9a 100644 --- a/service/firehose/deserializers.go +++ b/service/firehose/deserializers.go @@ -1678,6 +1678,231 @@ func awsAwsjson11_deserializeErrorServiceUnavailableException(response *smithyht return output } +func awsAwsjson11_deserializeDocumentAmazonopensearchserviceBufferingHints(v **types.AmazonopensearchserviceBufferingHints, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AmazonopensearchserviceBufferingHints + if *v == nil { + sv = &types.AmazonopensearchserviceBufferingHints{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "IntervalInSeconds": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected AmazonopensearchserviceBufferingIntervalInSeconds to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.IntervalInSeconds = ptr.Int32(int32(i64)) + } + + case "SizeInMBs": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected AmazonopensearchserviceBufferingSizeInMBs to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.SizeInMBs = ptr.Int32(int32(i64)) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentAmazonopensearchserviceDestinationDescription(v **types.AmazonopensearchserviceDestinationDescription, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AmazonopensearchserviceDestinationDescription + if *v == nil { + sv = &types.AmazonopensearchserviceDestinationDescription{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "BufferingHints": + if err := awsAwsjson11_deserializeDocumentAmazonopensearchserviceBufferingHints(&sv.BufferingHints, value); err != nil { + return err + } + + case "CloudWatchLoggingOptions": + if err := awsAwsjson11_deserializeDocumentCloudWatchLoggingOptions(&sv.CloudWatchLoggingOptions, value); err != nil { + return err + } + + case "ClusterEndpoint": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AmazonopensearchserviceClusterEndpoint to be of type string, got %T instead", value) + } + sv.ClusterEndpoint = ptr.String(jtv) + } + + case "DomainARN": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AmazonopensearchserviceDomainARN to be of type string, got %T instead", value) + } + sv.DomainARN = ptr.String(jtv) + } + + case "IndexName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AmazonopensearchserviceIndexName to be of type string, got %T instead", value) + } + sv.IndexName = ptr.String(jtv) + } + + case "IndexRotationPeriod": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AmazonopensearchserviceIndexRotationPeriod to be of type string, got %T instead", value) + } + sv.IndexRotationPeriod = types.AmazonopensearchserviceIndexRotationPeriod(jtv) + } + + case "ProcessingConfiguration": + if err := awsAwsjson11_deserializeDocumentProcessingConfiguration(&sv.ProcessingConfiguration, value); err != nil { + return err + } + + case "RetryOptions": + if err := awsAwsjson11_deserializeDocumentAmazonopensearchserviceRetryOptions(&sv.RetryOptions, value); err != nil { + return err + } + + case "RoleARN": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RoleARN to be of type string, got %T instead", value) + } + sv.RoleARN = ptr.String(jtv) + } + + case "S3BackupMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AmazonopensearchserviceS3BackupMode to be of type string, got %T instead", value) + } + sv.S3BackupMode = types.AmazonopensearchserviceS3BackupMode(jtv) + } + + case "S3DestinationDescription": + if err := awsAwsjson11_deserializeDocumentS3DestinationDescription(&sv.S3DestinationDescription, value); err != nil { + return err + } + + case "TypeName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AmazonopensearchserviceTypeName to be of type string, got %T instead", value) + } + sv.TypeName = ptr.String(jtv) + } + + case "VpcConfigurationDescription": + if err := awsAwsjson11_deserializeDocumentVpcConfigurationDescription(&sv.VpcConfigurationDescription, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentAmazonopensearchserviceRetryOptions(v **types.AmazonopensearchserviceRetryOptions, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AmazonopensearchserviceRetryOptions + if *v == nil { + sv = &types.AmazonopensearchserviceRetryOptions{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DurationInSeconds": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected AmazonopensearchserviceRetryDurationInSeconds to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.DurationInSeconds = ptr.Int32(int32(i64)) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentBufferingHints(v **types.BufferingHints, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -2281,6 +2506,11 @@ func awsAwsjson11_deserializeDocumentDestinationDescription(v **types.Destinatio for key, value := range shape { switch key { + case "AmazonopensearchserviceDestinationDescription": + if err := awsAwsjson11_deserializeDocumentAmazonopensearchserviceDestinationDescription(&sv.AmazonopensearchserviceDestinationDescription, value); err != nil { + return err + } + case "DestinationId": if value != nil { jtv, ok := value.(string) diff --git a/service/firehose/serializers.go b/service/firehose/serializers.go index 52e72cc156d..2f67a061c4b 100644 --- a/service/firehose/serializers.go +++ b/service/firehose/serializers.go @@ -578,6 +578,191 @@ func (m *awsAwsjson11_serializeOpUpdateDestination) HandleSerialize(ctx context. return next.HandleSerialize(ctx, in) } +func awsAwsjson11_serializeDocumentAmazonopensearchserviceBufferingHints(v *types.AmazonopensearchserviceBufferingHints, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.IntervalInSeconds != nil { + ok := object.Key("IntervalInSeconds") + ok.Integer(*v.IntervalInSeconds) + } + + if v.SizeInMBs != nil { + ok := object.Key("SizeInMBs") + ok.Integer(*v.SizeInMBs) + } + + return nil +} + +func awsAwsjson11_serializeDocumentAmazonopensearchserviceDestinationConfiguration(v *types.AmazonopensearchserviceDestinationConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.BufferingHints != nil { + ok := object.Key("BufferingHints") + if err := awsAwsjson11_serializeDocumentAmazonopensearchserviceBufferingHints(v.BufferingHints, ok); err != nil { + return err + } + } + + if v.CloudWatchLoggingOptions != nil { + ok := object.Key("CloudWatchLoggingOptions") + if err := awsAwsjson11_serializeDocumentCloudWatchLoggingOptions(v.CloudWatchLoggingOptions, ok); err != nil { + return err + } + } + + if v.ClusterEndpoint != nil { + ok := object.Key("ClusterEndpoint") + ok.String(*v.ClusterEndpoint) + } + + if v.DomainARN != nil { + ok := object.Key("DomainARN") + ok.String(*v.DomainARN) + } + + if v.IndexName != nil { + ok := object.Key("IndexName") + ok.String(*v.IndexName) + } + + if len(v.IndexRotationPeriod) > 0 { + ok := object.Key("IndexRotationPeriod") + ok.String(string(v.IndexRotationPeriod)) + } + + if v.ProcessingConfiguration != nil { + ok := object.Key("ProcessingConfiguration") + if err := awsAwsjson11_serializeDocumentProcessingConfiguration(v.ProcessingConfiguration, ok); err != nil { + return err + } + } + + if v.RetryOptions != nil { + ok := object.Key("RetryOptions") + if err := awsAwsjson11_serializeDocumentAmazonopensearchserviceRetryOptions(v.RetryOptions, ok); err != nil { + return err + } + } + + if v.RoleARN != nil { + ok := object.Key("RoleARN") + ok.String(*v.RoleARN) + } + + if len(v.S3BackupMode) > 0 { + ok := object.Key("S3BackupMode") + ok.String(string(v.S3BackupMode)) + } + + if v.S3Configuration != nil { + ok := object.Key("S3Configuration") + if err := awsAwsjson11_serializeDocumentS3DestinationConfiguration(v.S3Configuration, ok); err != nil { + return err + } + } + + if v.TypeName != nil { + ok := object.Key("TypeName") + ok.String(*v.TypeName) + } + + if v.VpcConfiguration != nil { + ok := object.Key("VpcConfiguration") + if err := awsAwsjson11_serializeDocumentVpcConfiguration(v.VpcConfiguration, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson11_serializeDocumentAmazonopensearchserviceDestinationUpdate(v *types.AmazonopensearchserviceDestinationUpdate, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.BufferingHints != nil { + ok := object.Key("BufferingHints") + if err := awsAwsjson11_serializeDocumentAmazonopensearchserviceBufferingHints(v.BufferingHints, ok); err != nil { + return err + } + } + + if v.CloudWatchLoggingOptions != nil { + ok := object.Key("CloudWatchLoggingOptions") + if err := awsAwsjson11_serializeDocumentCloudWatchLoggingOptions(v.CloudWatchLoggingOptions, ok); err != nil { + return err + } + } + + if v.ClusterEndpoint != nil { + ok := object.Key("ClusterEndpoint") + ok.String(*v.ClusterEndpoint) + } + + if v.DomainARN != nil { + ok := object.Key("DomainARN") + ok.String(*v.DomainARN) + } + + if v.IndexName != nil { + ok := object.Key("IndexName") + ok.String(*v.IndexName) + } + + if len(v.IndexRotationPeriod) > 0 { + ok := object.Key("IndexRotationPeriod") + ok.String(string(v.IndexRotationPeriod)) + } + + if v.ProcessingConfiguration != nil { + ok := object.Key("ProcessingConfiguration") + if err := awsAwsjson11_serializeDocumentProcessingConfiguration(v.ProcessingConfiguration, ok); err != nil { + return err + } + } + + if v.RetryOptions != nil { + ok := object.Key("RetryOptions") + if err := awsAwsjson11_serializeDocumentAmazonopensearchserviceRetryOptions(v.RetryOptions, ok); err != nil { + return err + } + } + + if v.RoleARN != nil { + ok := object.Key("RoleARN") + ok.String(*v.RoleARN) + } + + if v.S3Update != nil { + ok := object.Key("S3Update") + if err := awsAwsjson11_serializeDocumentS3DestinationUpdate(v.S3Update, ok); err != nil { + return err + } + } + + if v.TypeName != nil { + ok := object.Key("TypeName") + ok.String(*v.TypeName) + } + + return nil +} + +func awsAwsjson11_serializeDocumentAmazonopensearchserviceRetryOptions(v *types.AmazonopensearchserviceRetryOptions, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DurationInSeconds != nil { + ok := object.Key("DurationInSeconds") + ok.Integer(*v.DurationInSeconds) + } + + return nil +} + func awsAwsjson11_serializeDocumentBufferingHints(v *types.BufferingHints, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -2267,6 +2452,13 @@ func awsAwsjson11_serializeOpDocumentCreateDeliveryStreamInput(v *CreateDelivery object := value.Object() defer object.Close() + if v.AmazonopensearchserviceDestinationConfiguration != nil { + ok := object.Key("AmazonopensearchserviceDestinationConfiguration") + if err := awsAwsjson11_serializeDocumentAmazonopensearchserviceDestinationConfiguration(v.AmazonopensearchserviceDestinationConfiguration, ok); err != nil { + return err + } + } + if v.DeliveryStreamEncryptionConfigurationInput != nil { ok := object.Key("DeliveryStreamEncryptionConfigurationInput") if err := awsAwsjson11_serializeDocumentDeliveryStreamEncryptionConfigurationInput(v.DeliveryStreamEncryptionConfigurationInput, ok); err != nil { @@ -2537,6 +2729,13 @@ func awsAwsjson11_serializeOpDocumentUpdateDestinationInput(v *UpdateDestination object := value.Object() defer object.Close() + if v.AmazonopensearchserviceDestinationUpdate != nil { + ok := object.Key("AmazonopensearchserviceDestinationUpdate") + if err := awsAwsjson11_serializeDocumentAmazonopensearchserviceDestinationUpdate(v.AmazonopensearchserviceDestinationUpdate, ok); err != nil { + return err + } + } + if v.CurrentDeliveryStreamVersionId != nil { ok := object.Key("CurrentDeliveryStreamVersionId") ok.String(*v.CurrentDeliveryStreamVersionId) diff --git a/service/firehose/types/enums.go b/service/firehose/types/enums.go index e7bcae5e6bb..1a08e65898c 100644 --- a/service/firehose/types/enums.go +++ b/service/firehose/types/enums.go @@ -2,6 +2,50 @@ package types +type AmazonopensearchserviceIndexRotationPeriod string + +// Enum values for AmazonopensearchserviceIndexRotationPeriod +const ( + AmazonopensearchserviceIndexRotationPeriodNoRotation AmazonopensearchserviceIndexRotationPeriod = "NoRotation" + AmazonopensearchserviceIndexRotationPeriodOneHour AmazonopensearchserviceIndexRotationPeriod = "OneHour" + AmazonopensearchserviceIndexRotationPeriodOneDay AmazonopensearchserviceIndexRotationPeriod = "OneDay" + AmazonopensearchserviceIndexRotationPeriodOneWeek AmazonopensearchserviceIndexRotationPeriod = "OneWeek" + AmazonopensearchserviceIndexRotationPeriodOneMonth AmazonopensearchserviceIndexRotationPeriod = "OneMonth" +) + +// Values returns all known values for AmazonopensearchserviceIndexRotationPeriod. +// Note that this can be expanded in the future, and so it is only as up to date as +// the client. The ordering of this slice is not guaranteed to be stable across +// updates. +func (AmazonopensearchserviceIndexRotationPeriod) Values() []AmazonopensearchserviceIndexRotationPeriod { + return []AmazonopensearchserviceIndexRotationPeriod{ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth", + } +} + +type AmazonopensearchserviceS3BackupMode string + +// Enum values for AmazonopensearchserviceS3BackupMode +const ( + AmazonopensearchserviceS3BackupModeFailedDocumentsOnly AmazonopensearchserviceS3BackupMode = "FailedDocumentsOnly" + AmazonopensearchserviceS3BackupModeAllDocuments AmazonopensearchserviceS3BackupMode = "AllDocuments" +) + +// Values returns all known values for AmazonopensearchserviceS3BackupMode. Note +// that this can be expanded in the future, and so it is only as up to date as the +// client. The ordering of this slice is not guaranteed to be stable across +// updates. +func (AmazonopensearchserviceS3BackupMode) Values() []AmazonopensearchserviceS3BackupMode { + return []AmazonopensearchserviceS3BackupMode{ + "FailedDocumentsOnly", + "AllDocuments", + } +} + type CompressionFormat string // Enum values for CompressionFormat diff --git a/service/firehose/types/types.go b/service/firehose/types/types.go index 59eb5dd74ff..c32a397c8cc 100644 --- a/service/firehose/types/types.go +++ b/service/firehose/types/types.go @@ -7,6 +7,122 @@ import ( "time" ) +type AmazonopensearchserviceBufferingHints struct { + IntervalInSeconds *int32 + + SizeInMBs *int32 + + noSmithyDocumentSerde +} + +type AmazonopensearchserviceDestinationConfiguration struct { + + // This member is required. + IndexName *string + + // This member is required. + RoleARN *string + + // Describes the configuration of a destination in Amazon S3. + // + // This member is required. + S3Configuration *S3DestinationConfiguration + + BufferingHints *AmazonopensearchserviceBufferingHints + + // Describes the Amazon CloudWatch logging options for your delivery stream. + CloudWatchLoggingOptions *CloudWatchLoggingOptions + + ClusterEndpoint *string + + DomainARN *string + + IndexRotationPeriod AmazonopensearchserviceIndexRotationPeriod + + // Describes a data processing configuration. + ProcessingConfiguration *ProcessingConfiguration + + RetryOptions *AmazonopensearchserviceRetryOptions + + S3BackupMode AmazonopensearchserviceS3BackupMode + + TypeName *string + + // The details of the VPC of the Amazon ES destination. + VpcConfiguration *VpcConfiguration + + noSmithyDocumentSerde +} + +type AmazonopensearchserviceDestinationDescription struct { + BufferingHints *AmazonopensearchserviceBufferingHints + + // Describes the Amazon CloudWatch logging options for your delivery stream. + CloudWatchLoggingOptions *CloudWatchLoggingOptions + + ClusterEndpoint *string + + DomainARN *string + + IndexName *string + + IndexRotationPeriod AmazonopensearchserviceIndexRotationPeriod + + // Describes a data processing configuration. + ProcessingConfiguration *ProcessingConfiguration + + RetryOptions *AmazonopensearchserviceRetryOptions + + RoleARN *string + + S3BackupMode AmazonopensearchserviceS3BackupMode + + // Describes a destination in Amazon S3. + S3DestinationDescription *S3DestinationDescription + + TypeName *string + + // The details of the VPC of the Amazon ES destination. + VpcConfigurationDescription *VpcConfigurationDescription + + noSmithyDocumentSerde +} + +type AmazonopensearchserviceDestinationUpdate struct { + BufferingHints *AmazonopensearchserviceBufferingHints + + // Describes the Amazon CloudWatch logging options for your delivery stream. + CloudWatchLoggingOptions *CloudWatchLoggingOptions + + ClusterEndpoint *string + + DomainARN *string + + IndexName *string + + IndexRotationPeriod AmazonopensearchserviceIndexRotationPeriod + + // Describes a data processing configuration. + ProcessingConfiguration *ProcessingConfiguration + + RetryOptions *AmazonopensearchserviceRetryOptions + + RoleARN *string + + // Describes an update for a destination in Amazon S3. + S3Update *S3DestinationUpdate + + TypeName *string + + noSmithyDocumentSerde +} + +type AmazonopensearchserviceRetryOptions struct { + DurationInSeconds *int32 + + noSmithyDocumentSerde +} + // Describes hints for the buffering to perform before delivering data to the // destination. These options are treated as hints, and therefore Kinesis Data // Firehose might choose to use different values when it is optimal. The SizeInMBs @@ -284,6 +400,8 @@ type DestinationDescription struct { // This member is required. DestinationId *string + AmazonopensearchserviceDestinationDescription *AmazonopensearchserviceDestinationDescription + // The destination in Amazon ES. ElasticsearchDestinationDescription *ElasticsearchDestinationDescription diff --git a/service/firehose/validators.go b/service/firehose/validators.go index 00fc5e55e98..842a508a409 100644 --- a/service/firehose/validators.go +++ b/service/firehose/validators.go @@ -274,6 +274,63 @@ func addOpUpdateDestinationValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateDestination{}, middleware.After) } +func validateAmazonopensearchserviceDestinationConfiguration(v *types.AmazonopensearchserviceDestinationConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "AmazonopensearchserviceDestinationConfiguration"} + if v.RoleARN == nil { + invalidParams.Add(smithy.NewErrParamRequired("RoleARN")) + } + if v.IndexName == nil { + invalidParams.Add(smithy.NewErrParamRequired("IndexName")) + } + if v.S3Configuration == nil { + invalidParams.Add(smithy.NewErrParamRequired("S3Configuration")) + } else if v.S3Configuration != nil { + if err := validateS3DestinationConfiguration(v.S3Configuration); err != nil { + invalidParams.AddNested("S3Configuration", err.(smithy.InvalidParamsError)) + } + } + if v.ProcessingConfiguration != nil { + if err := validateProcessingConfiguration(v.ProcessingConfiguration); err != nil { + invalidParams.AddNested("ProcessingConfiguration", err.(smithy.InvalidParamsError)) + } + } + if v.VpcConfiguration != nil { + if err := validateVpcConfiguration(v.VpcConfiguration); err != nil { + invalidParams.AddNested("VpcConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateAmazonopensearchserviceDestinationUpdate(v *types.AmazonopensearchserviceDestinationUpdate) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "AmazonopensearchserviceDestinationUpdate"} + if v.S3Update != nil { + if err := validateS3DestinationUpdate(v.S3Update); err != nil { + invalidParams.AddNested("S3Update", err.(smithy.InvalidParamsError)) + } + } + if v.ProcessingConfiguration != nil { + if err := validateProcessingConfiguration(v.ProcessingConfiguration); err != nil { + invalidParams.AddNested("ProcessingConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateCopyCommand(v *types.CopyCommand) error { if v == nil { return nil @@ -993,6 +1050,11 @@ func validateOpCreateDeliveryStreamInput(v *CreateDeliveryStreamInput) error { invalidParams.AddNested("ElasticsearchDestinationConfiguration", err.(smithy.InvalidParamsError)) } } + if v.AmazonopensearchserviceDestinationConfiguration != nil { + if err := validateAmazonopensearchserviceDestinationConfiguration(v.AmazonopensearchserviceDestinationConfiguration); err != nil { + invalidParams.AddNested("AmazonopensearchserviceDestinationConfiguration", err.(smithy.InvalidParamsError)) + } + } if v.SplunkDestinationConfiguration != nil { if err := validateSplunkDestinationConfiguration(v.SplunkDestinationConfiguration); err != nil { invalidParams.AddNested("SplunkDestinationConfiguration", err.(smithy.InvalidParamsError)) @@ -1213,6 +1275,11 @@ func validateOpUpdateDestinationInput(v *UpdateDestinationInput) error { invalidParams.AddNested("ElasticsearchDestinationUpdate", err.(smithy.InvalidParamsError)) } } + if v.AmazonopensearchserviceDestinationUpdate != nil { + if err := validateAmazonopensearchserviceDestinationUpdate(v.AmazonopensearchserviceDestinationUpdate); err != nil { + invalidParams.AddNested("AmazonopensearchserviceDestinationUpdate", err.(smithy.InvalidParamsError)) + } + } if v.SplunkDestinationUpdate != nil { if err := validateSplunkDestinationUpdate(v.SplunkDestinationUpdate); err != nil { invalidParams.AddNested("SplunkDestinationUpdate", err.(smithy.InvalidParamsError)) diff --git a/service/frauddetector/api_op_CancelBatchImportJob.go b/service/frauddetector/api_op_CancelBatchImportJob.go new file mode 100644 index 00000000000..5230b83e64f --- /dev/null +++ b/service/frauddetector/api_op_CancelBatchImportJob.go @@ -0,0 +1,118 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package frauddetector + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Cancels an in-progress batch import job. +func (c *Client) CancelBatchImportJob(ctx context.Context, params *CancelBatchImportJobInput, optFns ...func(*Options)) (*CancelBatchImportJobOutput, error) { + if params == nil { + params = &CancelBatchImportJobInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CancelBatchImportJob", params, optFns, c.addOperationCancelBatchImportJobMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CancelBatchImportJobOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CancelBatchImportJobInput struct { + + // The ID of an in-progress batch import job to cancel. Amazon Fraud Detector will + // throw an error if the batch import job is in FAILED, CANCELED, or COMPLETED + // state. + // + // This member is required. + JobId *string + + noSmithyDocumentSerde +} + +type CancelBatchImportJobOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCancelBatchImportJobMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpCancelBatchImportJob{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpCancelBatchImportJob{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpCancelBatchImportJobValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCancelBatchImportJob(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opCancelBatchImportJob(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "frauddetector", + OperationName: "CancelBatchImportJob", + } +} diff --git a/service/frauddetector/api_op_CreateBatchImportJob.go b/service/frauddetector/api_op_CreateBatchImportJob.go new file mode 100644 index 00000000000..c33c334e96a --- /dev/null +++ b/service/frauddetector/api_op_CreateBatchImportJob.go @@ -0,0 +1,143 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package frauddetector + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/frauddetector/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Creates a batch import job. +func (c *Client) CreateBatchImportJob(ctx context.Context, params *CreateBatchImportJobInput, optFns ...func(*Options)) (*CreateBatchImportJobOutput, error) { + if params == nil { + params = &CreateBatchImportJobInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateBatchImportJob", params, optFns, c.addOperationCreateBatchImportJobMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateBatchImportJobOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateBatchImportJobInput struct { + + // The name of the event type. + // + // This member is required. + EventTypeName *string + + // The ARN of the IAM role created for Amazon S3 bucket that holds your data file. + // The IAM role must have read and write permissions to both input and output S3 + // buckets. + // + // This member is required. + IamRoleArn *string + + // The URI that points to the Amazon S3 location of your data file. + // + // This member is required. + InputPath *string + + // The ID of the batch import job. The ID cannot be of a past job, unless the job + // exists in CREATE_FAILED state. + // + // This member is required. + JobId *string + + // The URI that points to the Amazon S3 location for storing your results. + // + // This member is required. + OutputPath *string + + // A collection of key-value pairs associated with this request. + Tags []types.Tag + + noSmithyDocumentSerde +} + +type CreateBatchImportJobOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateBatchImportJobMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpCreateBatchImportJob{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpCreateBatchImportJob{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpCreateBatchImportJobValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateBatchImportJob(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opCreateBatchImportJob(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "frauddetector", + OperationName: "CreateBatchImportJob", + } +} diff --git a/service/frauddetector/api_op_CreateModelVersion.go b/service/frauddetector/api_op_CreateModelVersion.go index 133de32ef38..019aec978d6 100644 --- a/service/frauddetector/api_op_CreateModelVersion.go +++ b/service/frauddetector/api_op_CreateModelVersion.go @@ -49,10 +49,14 @@ type CreateModelVersionInput struct { // This member is required. TrainingDataSource types.TrainingDataSourceEnum - // Details for the external events data used for model version training. Required - // if trainingDataSource is EXTERNAL_EVENTS. + // Details of the external events data used for model version training. Required if + // trainingDataSource is EXTERNAL_EVENTS. ExternalEventsDetail *types.ExternalEventsDetail + // Details of the ingested events data used for model version training. Required if + // trainingDataSource is INGESTED_EVENTS. + IngestedEventsDetail *types.IngestedEventsDetail + // A collection of key and value pairs. Tags []types.Tag diff --git a/service/frauddetector/api_op_DeleteBatchImportJob.go b/service/frauddetector/api_op_DeleteBatchImportJob.go new file mode 100644 index 00000000000..2e491ee8c1e --- /dev/null +++ b/service/frauddetector/api_op_DeleteBatchImportJob.go @@ -0,0 +1,116 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package frauddetector + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Deletes data that was batch imported to Amazon Fraud Detector. +func (c *Client) DeleteBatchImportJob(ctx context.Context, params *DeleteBatchImportJobInput, optFns ...func(*Options)) (*DeleteBatchImportJobOutput, error) { + if params == nil { + params = &DeleteBatchImportJobInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteBatchImportJob", params, optFns, c.addOperationDeleteBatchImportJobMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteBatchImportJobOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteBatchImportJobInput struct { + + // The ID of the batch import job to delete. + // + // This member is required. + JobId *string + + noSmithyDocumentSerde +} + +type DeleteBatchImportJobOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteBatchImportJobMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDeleteBatchImportJob{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDeleteBatchImportJob{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpDeleteBatchImportJobValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteBatchImportJob(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDeleteBatchImportJob(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "frauddetector", + OperationName: "DeleteBatchImportJob", + } +} diff --git a/service/frauddetector/api_op_DeleteEvent.go b/service/frauddetector/api_op_DeleteEvent.go index 91a1200f15b..5dade7e90df 100644 --- a/service/frauddetector/api_op_DeleteEvent.go +++ b/service/frauddetector/api_op_DeleteEvent.go @@ -40,6 +40,9 @@ type DeleteEventInput struct { // This member is required. EventTypeName *string + // Specifies whether or not to delete any predictions associated with the event. + DeleteAuditHistory *bool + noSmithyDocumentSerde } diff --git a/service/frauddetector/api_op_DeleteEventType.go b/service/frauddetector/api_op_DeleteEventType.go index 3a33cca4a5d..ccb617a8eb6 100644 --- a/service/frauddetector/api_op_DeleteEventType.go +++ b/service/frauddetector/api_op_DeleteEventType.go @@ -11,8 +11,8 @@ import ( ) // Deletes an event type. You cannot delete an event type that is used in a -// detector or a model. When you delete an entity type, Amazon Fraud Detector -// permanently deletes that entity type and the data is no longer stored in Amazon +// detector or a model. When you delete an event type, Amazon Fraud Detector +// permanently deletes that event type and the data is no longer stored in Amazon // Fraud Detector. func (c *Client) DeleteEventType(ctx context.Context, params *DeleteEventTypeInput, optFns ...func(*Options)) (*DeleteEventTypeOutput, error) { if params == nil { diff --git a/service/frauddetector/api_op_DeleteEventsByEventType.go b/service/frauddetector/api_op_DeleteEventsByEventType.go new file mode 100644 index 00000000000..a3b41a4b20e --- /dev/null +++ b/service/frauddetector/api_op_DeleteEventsByEventType.go @@ -0,0 +1,123 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package frauddetector + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Deletes all events of a particular event type. +func (c *Client) DeleteEventsByEventType(ctx context.Context, params *DeleteEventsByEventTypeInput, optFns ...func(*Options)) (*DeleteEventsByEventTypeOutput, error) { + if params == nil { + params = &DeleteEventsByEventTypeInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteEventsByEventType", params, optFns, c.addOperationDeleteEventsByEventTypeMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteEventsByEventTypeOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteEventsByEventTypeInput struct { + + // The name of the event type. + // + // This member is required. + EventTypeName *string + + noSmithyDocumentSerde +} + +type DeleteEventsByEventTypeOutput struct { + + // Name of event type for which to delete the events. + EventTypeName *string + + // The status of the delete request. + EventsDeletionStatus *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteEventsByEventTypeMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDeleteEventsByEventType{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDeleteEventsByEventType{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpDeleteEventsByEventTypeValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteEventsByEventType(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDeleteEventsByEventType(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "frauddetector", + OperationName: "DeleteEventsByEventType", + } +} diff --git a/service/frauddetector/api_op_GetBatchImportJobs.go b/service/frauddetector/api_op_GetBatchImportJobs.go new file mode 100644 index 00000000000..d3240328022 --- /dev/null +++ b/service/frauddetector/api_op_GetBatchImportJobs.go @@ -0,0 +1,218 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package frauddetector + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/frauddetector/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Gets all batch import jobs or a specific job of the specified ID. This is a +// paginated API. If you provide a null maxResults, this action retrieves a maximum +// of 50 records per page. If you provide a maxResults, the value must be between 1 +// and 50. To get the next page results, provide the pagination token from the +// GetBatchImportJobsResponse as part of your request. A null pagination token +// fetches the records from the beginning. +func (c *Client) GetBatchImportJobs(ctx context.Context, params *GetBatchImportJobsInput, optFns ...func(*Options)) (*GetBatchImportJobsOutput, error) { + if params == nil { + params = &GetBatchImportJobsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetBatchImportJobs", params, optFns, c.addOperationGetBatchImportJobsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetBatchImportJobsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetBatchImportJobsInput struct { + + // The ID of the batch import job to get. + JobId *string + + // The maximum number of objects to return for request. + MaxResults *int32 + + // The next token from the previous request. + NextToken *string + + noSmithyDocumentSerde +} + +type GetBatchImportJobsOutput struct { + + // An array containing the details of each batch import job. + BatchImports []types.BatchImport + + // The next token for the subsequent resquest. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetBatchImportJobsMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpGetBatchImportJobs{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpGetBatchImportJobs{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetBatchImportJobs(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +// GetBatchImportJobsAPIClient is a client that implements the GetBatchImportJobs +// operation. +type GetBatchImportJobsAPIClient interface { + GetBatchImportJobs(context.Context, *GetBatchImportJobsInput, ...func(*Options)) (*GetBatchImportJobsOutput, error) +} + +var _ GetBatchImportJobsAPIClient = (*Client)(nil) + +// GetBatchImportJobsPaginatorOptions is the paginator options for +// GetBatchImportJobs +type GetBatchImportJobsPaginatorOptions struct { + // The maximum number of objects to return for request. + Limit int32 + + // Set to true if pagination should stop if the service returns a pagination token + // that matches the most recent token provided to the service. + StopOnDuplicateToken bool +} + +// GetBatchImportJobsPaginator is a paginator for GetBatchImportJobs +type GetBatchImportJobsPaginator struct { + options GetBatchImportJobsPaginatorOptions + client GetBatchImportJobsAPIClient + params *GetBatchImportJobsInput + nextToken *string + firstPage bool +} + +// NewGetBatchImportJobsPaginator returns a new GetBatchImportJobsPaginator +func NewGetBatchImportJobsPaginator(client GetBatchImportJobsAPIClient, params *GetBatchImportJobsInput, optFns ...func(*GetBatchImportJobsPaginatorOptions)) *GetBatchImportJobsPaginator { + if params == nil { + params = &GetBatchImportJobsInput{} + } + + options := GetBatchImportJobsPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &GetBatchImportJobsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *GetBatchImportJobsPaginator) HasMorePages() bool { + return p.firstPage || p.nextToken != nil +} + +// NextPage retrieves the next GetBatchImportJobs page. +func (p *GetBatchImportJobsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*GetBatchImportJobsOutput, error) { + if !p.HasMorePages() { + return nil, fmt.Errorf("no more pages available") + } + + params := *p.params + params.NextToken = p.nextToken + + var limit *int32 + if p.options.Limit > 0 { + limit = &p.options.Limit + } + params.MaxResults = limit + + result, err := p.client.GetBatchImportJobs(ctx, ¶ms, optFns...) + if err != nil { + return nil, err + } + p.firstPage = false + + prevToken := p.nextToken + p.nextToken = result.NextToken + + if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken { + p.nextToken = nil + } + + return result, nil +} + +func newServiceMetadataMiddleware_opGetBatchImportJobs(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "frauddetector", + OperationName: "GetBatchImportJobs", + } +} diff --git a/service/frauddetector/api_op_GetDeleteEventsByEventTypeStatus.go b/service/frauddetector/api_op_GetDeleteEventsByEventTypeStatus.go new file mode 100644 index 00000000000..1b6d39cb447 --- /dev/null +++ b/service/frauddetector/api_op_GetDeleteEventsByEventTypeStatus.go @@ -0,0 +1,124 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package frauddetector + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/frauddetector/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Retrieves the status of a DeleteEventsByEventType action. +func (c *Client) GetDeleteEventsByEventTypeStatus(ctx context.Context, params *GetDeleteEventsByEventTypeStatusInput, optFns ...func(*Options)) (*GetDeleteEventsByEventTypeStatusOutput, error) { + if params == nil { + params = &GetDeleteEventsByEventTypeStatusInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetDeleteEventsByEventTypeStatus", params, optFns, c.addOperationGetDeleteEventsByEventTypeStatusMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetDeleteEventsByEventTypeStatusOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetDeleteEventsByEventTypeStatusInput struct { + + // Name of event type for which to get the deletion status. + // + // This member is required. + EventTypeName *string + + noSmithyDocumentSerde +} + +type GetDeleteEventsByEventTypeStatusOutput struct { + + // The event type name. + EventTypeName *string + + // The deletion status. + EventsDeletionStatus types.AsyncJobStatus + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetDeleteEventsByEventTypeStatusMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpGetDeleteEventsByEventTypeStatus{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpGetDeleteEventsByEventTypeStatus{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpGetDeleteEventsByEventTypeStatusValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetDeleteEventsByEventTypeStatus(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opGetDeleteEventsByEventTypeStatus(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "frauddetector", + OperationName: "GetDeleteEventsByEventTypeStatus", + } +} diff --git a/service/frauddetector/api_op_GetEvent.go b/service/frauddetector/api_op_GetEvent.go new file mode 100644 index 00000000000..8dbb275dd38 --- /dev/null +++ b/service/frauddetector/api_op_GetEvent.go @@ -0,0 +1,127 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package frauddetector + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/frauddetector/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Retrieves details of events stored with Amazon Fraud Detector. This action does +// not retrieve prediction results. +func (c *Client) GetEvent(ctx context.Context, params *GetEventInput, optFns ...func(*Options)) (*GetEventOutput, error) { + if params == nil { + params = &GetEventInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetEvent", params, optFns, c.addOperationGetEventMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetEventOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetEventInput struct { + + // The ID of the event to retrieve. + // + // This member is required. + EventId *string + + // The event type of the event to retrieve. + // + // This member is required. + EventTypeName *string + + noSmithyDocumentSerde +} + +type GetEventOutput struct { + + // The details of the event. + Event *types.Event + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetEventMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpGetEvent{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpGetEvent{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpGetEventValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetEvent(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opGetEvent(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "frauddetector", + OperationName: "GetEvent", + } +} diff --git a/service/frauddetector/api_op_GetEventPrediction.go b/service/frauddetector/api_op_GetEventPrediction.go index d3c00096542..e6db24ef9dd 100644 --- a/service/frauddetector/api_op_GetEventPrediction.go +++ b/service/frauddetector/api_op_GetEventPrediction.go @@ -47,7 +47,8 @@ type GetEventPredictionInput struct { // This member is required. EventId *string - // Timestamp that defines when the event under evaluation occurred. + // Timestamp that defines when the event under evaluation occurred. The timestamp + // must be specified using ISO 8601 standard in UTC. // // This member is required. EventTimestamp *string @@ -59,25 +60,18 @@ type GetEventPredictionInput struct { // Names of the event type's variables you defined in Amazon Fraud Detector to // represent data elements and their corresponding values for the event you are - // sending for evaluation. - // - // * You must provide at least one eventVariable - // - // * If - // detectorVersion is associated with a modelVersion, you must provide at least one - // associated eventVariable - // - // To ensure highest possible fraud prediction and to - // simplify your data preparation, Amazon Fraud Detector will replace all missing - // variables or values as follows: For Amazon Fraud Detector trained models: If a - // null value is provided explicitly for a variable or if a variable is missing, - // model will replace the null value or the missing variable (no variable name in - // the eventVariables map) with calculated default mean/medians for numeric - // variables and with special values for categorical variables. For External models - // ( for example, imported SageMaker): If a null value is provided explicitly for a - // variable, the model and rules will use “null” as the value. If a variable is not - // provided (no variable name in the eventVariables map), model and rules will use - // the default value that is provided for the variable. + // sending for evaluation. You must provide at least one eventVariable To ensure + // most accurate fraud prediction and to simplify your data preparation, Amazon + // Fraud Detector will replace all missing variables or values as follows: For + // Amazon Fraud Detector trained models: If a null value is provided explicitly for + // a variable or if a variable is missing, model will replace the null value or the + // missing variable (no variable name in the eventVariables map) with calculated + // default mean/medians for numeric variables and with special values for + // categorical variables. For imported SageMaker models: If a null value is + // provided explicitly for a variable, the model and rules will use “null” as the + // value. If a variable is not provided (no variable name in the eventVariables + // map), model and rules will use the default value that is provided for the + // variable. // // This member is required. EventVariables map[string]string diff --git a/service/frauddetector/api_op_GetKMSEncryptionKey.go b/service/frauddetector/api_op_GetKMSEncryptionKey.go index 0402109bf85..67ce1eec9b4 100644 --- a/service/frauddetector/api_op_GetKMSEncryptionKey.go +++ b/service/frauddetector/api_op_GetKMSEncryptionKey.go @@ -11,8 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets the encryption key if a Key Management Service (KMS) customer master key -// (CMK) has been specified to be used to encrypt content in Amazon Fraud Detector. +// Gets the encryption key if a KMS key has been specified to be used to encrypt +// content in Amazon Fraud Detector. func (c *Client) GetKMSEncryptionKey(ctx context.Context, params *GetKMSEncryptionKeyInput, optFns ...func(*Options)) (*GetKMSEncryptionKeyOutput, error) { if params == nil { params = &GetKMSEncryptionKeyInput{} diff --git a/service/frauddetector/api_op_GetModelVersion.go b/service/frauddetector/api_op_GetModelVersion.go index eb55833bac9..7af99482004 100644 --- a/service/frauddetector/api_op_GetModelVersion.go +++ b/service/frauddetector/api_op_GetModelVersion.go @@ -52,9 +52,14 @@ type GetModelVersionOutput struct { // The model version ARN. Arn *string - // The event details. + // The details of the external events data used for training the model version. + // This will be populated if the trainingDataSource is EXTERNAL_EVENTS ExternalEventsDetail *types.ExternalEventsDetail + // The details of the ingested events data used for training the model version. + // This will be populated if the trainingDataSource is INGESTED_EVENTS. + IngestedEventsDetail *types.IngestedEventsDetail + // The model ID. ModelId *string diff --git a/service/frauddetector/api_op_PutEventType.go b/service/frauddetector/api_op_PutEventType.go index 36a3e02002b..1c137a9affd 100644 --- a/service/frauddetector/api_op_PutEventType.go +++ b/service/frauddetector/api_op_PutEventType.go @@ -54,6 +54,9 @@ type PutEventTypeInput struct { // The description of the event type. Description *string + // Specifies if ingenstion is enabled or disabled. + EventIngestion types.EventIngestion + // The event type labels. Labels []string diff --git a/service/frauddetector/api_op_PutKMSEncryptionKey.go b/service/frauddetector/api_op_PutKMSEncryptionKey.go index 2136d96ff3e..c7eac81b815 100644 --- a/service/frauddetector/api_op_PutKMSEncryptionKey.go +++ b/service/frauddetector/api_op_PutKMSEncryptionKey.go @@ -10,8 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Specifies the Key Management Service (KMS) customer master key (CMK) to be used -// to encrypt content in Amazon Fraud Detector. +// Specifies the KMS key to be used to encrypt content in Amazon Fraud Detector. func (c *Client) PutKMSEncryptionKey(ctx context.Context, params *PutKMSEncryptionKeyInput, optFns ...func(*Options)) (*PutKMSEncryptionKeyOutput, error) { if params == nil { params = &PutKMSEncryptionKeyInput{} diff --git a/service/frauddetector/api_op_SendEvent.go b/service/frauddetector/api_op_SendEvent.go new file mode 100644 index 00000000000..1b76e43bf92 --- /dev/null +++ b/service/frauddetector/api_op_SendEvent.go @@ -0,0 +1,148 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package frauddetector + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/frauddetector/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Stores events in Amazon Fraud Detector without generating fraud predictions for +// those events. For example, you can use SendEvent to upload a historical dataset, +// which you can then later use to train a model. +func (c *Client) SendEvent(ctx context.Context, params *SendEventInput, optFns ...func(*Options)) (*SendEventOutput, error) { + if params == nil { + params = &SendEventInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "SendEvent", params, optFns, c.addOperationSendEventMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*SendEventOutput) + out.ResultMetadata = metadata + return out, nil +} + +type SendEventInput struct { + + // An array of entities. + // + // This member is required. + Entities []types.Entity + + // The event ID to upload. + // + // This member is required. + EventId *string + + // The timestamp that defines when the event under evaluation occurred. The + // timestamp must be specified using ISO 8601 standard in UTC. + // + // This member is required. + EventTimestamp *string + + // The event type name of the event. + // + // This member is required. + EventTypeName *string + + // Names of the event type's variables you defined in Amazon Fraud Detector to + // represent data elements and their corresponding values for the event you are + // sending for evaluation. + // + // This member is required. + EventVariables map[string]string + + // The label to associate with the event. Required if specifying labelTimestamp. + AssignedLabel *string + + // The timestamp associated with the label. Required if specifying assignedLabel. + LabelTimestamp *string + + noSmithyDocumentSerde +} + +type SendEventOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationSendEventMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpSendEvent{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpSendEvent{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpSendEventValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opSendEvent(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opSendEvent(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "frauddetector", + OperationName: "SendEvent", + } +} diff --git a/service/frauddetector/api_op_UpdateEventLabel.go b/service/frauddetector/api_op_UpdateEventLabel.go new file mode 100644 index 00000000000..7b95259ab73 --- /dev/null +++ b/service/frauddetector/api_op_UpdateEventLabel.go @@ -0,0 +1,132 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package frauddetector + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Updates the specified event with a new label. +func (c *Client) UpdateEventLabel(ctx context.Context, params *UpdateEventLabelInput, optFns ...func(*Options)) (*UpdateEventLabelOutput, error) { + if params == nil { + params = &UpdateEventLabelInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateEventLabel", params, optFns, c.addOperationUpdateEventLabelMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateEventLabelOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateEventLabelInput struct { + + // The new label to assign to the event. + // + // This member is required. + AssignedLabel *string + + // The ID of the event associated with the label to update. + // + // This member is required. + EventId *string + + // The event type of the event associated with the label to update. + // + // This member is required. + EventTypeName *string + + // The timestamp associated with the label. The timestamp must be specified using + // ISO 8601 standard in UTC. + // + // This member is required. + LabelTimestamp *string + + noSmithyDocumentSerde +} + +type UpdateEventLabelOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateEventLabelMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpUpdateEventLabel{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpUpdateEventLabel{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpUpdateEventLabelValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateEventLabel(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opUpdateEventLabel(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "frauddetector", + OperationName: "UpdateEventLabel", + } +} diff --git a/service/frauddetector/api_op_UpdateModel.go b/service/frauddetector/api_op_UpdateModel.go index bd14c303587..bebdff35aa5 100644 --- a/service/frauddetector/api_op_UpdateModel.go +++ b/service/frauddetector/api_op_UpdateModel.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates a model. You can update the description attribute using this action. +// Updates model description. func (c *Client) UpdateModel(ctx context.Context, params *UpdateModelInput, optFns ...func(*Options)) (*UpdateModelOutput, error) { if params == nil { params = &UpdateModelInput{} diff --git a/service/frauddetector/api_op_UpdateModelVersion.go b/service/frauddetector/api_op_UpdateModelVersion.go index ab3d11ffbda..7b841419fd6 100644 --- a/service/frauddetector/api_op_UpdateModelVersion.go +++ b/service/frauddetector/api_op_UpdateModelVersion.go @@ -48,9 +48,14 @@ type UpdateModelVersionInput struct { // This member is required. ModelType types.ModelTypeEnum - // The event details. + // The details of the external events data used for training the model version. + // Required if trainingDataSource is EXTERNAL_EVENTS. ExternalEventsDetail *types.ExternalEventsDetail + // The details of the ingested event used for training the model version. Required + // if your trainingDataSource is INGESTED_EVENTS. + IngestedEventsDetail *types.IngestedEventsDetail + // A collection of key and value pairs. Tags []types.Tag diff --git a/service/frauddetector/api_op_UpdateModelVersionStatus.go b/service/frauddetector/api_op_UpdateModelVersionStatus.go index 150630452b3..fd05cdfcc5b 100644 --- a/service/frauddetector/api_op_UpdateModelVersionStatus.go +++ b/service/frauddetector/api_op_UpdateModelVersionStatus.go @@ -16,7 +16,7 @@ import ( // // * Change the TRAINING_COMPLETE status to ACTIVE. // -// * Change ACTIVEto +// * Change ACTIVE to // INACTIVE. func (c *Client) UpdateModelVersionStatus(ctx context.Context, params *UpdateModelVersionStatusInput, optFns ...func(*Options)) (*UpdateModelVersionStatusOutput, error) { if params == nil { diff --git a/service/frauddetector/deserializers.go b/service/frauddetector/deserializers.go index 72bfbc086a2..7cccb8c181c 100644 --- a/service/frauddetector/deserializers.go +++ b/service/frauddetector/deserializers.go @@ -259,14 +259,14 @@ func awsAwsjson11_deserializeOpErrorBatchGetVariable(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpCancelBatchPredictionJob struct { +type awsAwsjson11_deserializeOpCancelBatchImportJob struct { } -func (*awsAwsjson11_deserializeOpCancelBatchPredictionJob) ID() string { +func (*awsAwsjson11_deserializeOpCancelBatchImportJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCancelBatchPredictionJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCancelBatchImportJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -280,9 +280,9 @@ func (m *awsAwsjson11_deserializeOpCancelBatchPredictionJob) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCancelBatchPredictionJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCancelBatchImportJob(response, &metadata) } - output := &CancelBatchPredictionJobOutput{} + output := &CancelBatchImportJobOutput{} out.Result = output var buff [1024]byte @@ -302,7 +302,7 @@ func (m *awsAwsjson11_deserializeOpCancelBatchPredictionJob) HandleDeserialize(c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCancelBatchPredictionJobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCancelBatchImportJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -316,7 +316,7 @@ func (m *awsAwsjson11_deserializeOpCancelBatchPredictionJob) HandleDeserialize(c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCancelBatchPredictionJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCancelBatchImportJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -382,14 +382,14 @@ func awsAwsjson11_deserializeOpErrorCancelBatchPredictionJob(response *smithyhtt } } -type awsAwsjson11_deserializeOpCreateBatchPredictionJob struct { +type awsAwsjson11_deserializeOpCancelBatchPredictionJob struct { } -func (*awsAwsjson11_deserializeOpCreateBatchPredictionJob) ID() string { +func (*awsAwsjson11_deserializeOpCancelBatchPredictionJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateBatchPredictionJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCancelBatchPredictionJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -403,9 +403,9 @@ func (m *awsAwsjson11_deserializeOpCreateBatchPredictionJob) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateBatchPredictionJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCancelBatchPredictionJob(response, &metadata) } - output := &CreateBatchPredictionJobOutput{} + output := &CancelBatchPredictionJobOutput{} out.Result = output var buff [1024]byte @@ -425,7 +425,7 @@ func (m *awsAwsjson11_deserializeOpCreateBatchPredictionJob) HandleDeserialize(c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateBatchPredictionJobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCancelBatchPredictionJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -439,7 +439,7 @@ func (m *awsAwsjson11_deserializeOpCreateBatchPredictionJob) HandleDeserialize(c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateBatchPredictionJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCancelBatchPredictionJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -505,14 +505,14 @@ func awsAwsjson11_deserializeOpErrorCreateBatchPredictionJob(response *smithyhtt } } -type awsAwsjson11_deserializeOpCreateDetectorVersion struct { +type awsAwsjson11_deserializeOpCreateBatchImportJob struct { } -func (*awsAwsjson11_deserializeOpCreateDetectorVersion) ID() string { +func (*awsAwsjson11_deserializeOpCreateBatchImportJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateDetectorVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateBatchImportJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -526,9 +526,9 @@ func (m *awsAwsjson11_deserializeOpCreateDetectorVersion) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateDetectorVersion(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateBatchImportJob(response, &metadata) } - output := &CreateDetectorVersionOutput{} + output := &CreateBatchImportJobOutput{} out.Result = output var buff [1024]byte @@ -548,7 +548,7 @@ func (m *awsAwsjson11_deserializeOpCreateDetectorVersion) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateDetectorVersionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateBatchImportJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -562,7 +562,7 @@ func (m *awsAwsjson11_deserializeOpCreateDetectorVersion) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateDetectorVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateBatchImportJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -628,14 +628,14 @@ func awsAwsjson11_deserializeOpErrorCreateDetectorVersion(response *smithyhttp.R } } -type awsAwsjson11_deserializeOpCreateModel struct { +type awsAwsjson11_deserializeOpCreateBatchPredictionJob struct { } -func (*awsAwsjson11_deserializeOpCreateModel) ID() string { +func (*awsAwsjson11_deserializeOpCreateBatchPredictionJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateModel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateBatchPredictionJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -649,9 +649,9 @@ func (m *awsAwsjson11_deserializeOpCreateModel) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateModel(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateBatchPredictionJob(response, &metadata) } - output := &CreateModelOutput{} + output := &CreateBatchPredictionJobOutput{} out.Result = output var buff [1024]byte @@ -671,7 +671,7 @@ func (m *awsAwsjson11_deserializeOpCreateModel) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateModelOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateBatchPredictionJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -685,7 +685,7 @@ func (m *awsAwsjson11_deserializeOpCreateModel) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateModel(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateBatchPredictionJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -732,6 +732,9 @@ func awsAwsjson11_deserializeOpErrorCreateModel(response *smithyhttp.Response, m case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) @@ -748,14 +751,14 @@ func awsAwsjson11_deserializeOpErrorCreateModel(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpCreateModelVersion struct { +type awsAwsjson11_deserializeOpCreateDetectorVersion struct { } -func (*awsAwsjson11_deserializeOpCreateModelVersion) ID() string { +func (*awsAwsjson11_deserializeOpCreateDetectorVersion) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateModelVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateDetectorVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -769,9 +772,9 @@ func (m *awsAwsjson11_deserializeOpCreateModelVersion) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateModelVersion(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateDetectorVersion(response, &metadata) } - output := &CreateModelVersionOutput{} + output := &CreateDetectorVersionOutput{} out.Result = output var buff [1024]byte @@ -791,7 +794,7 @@ func (m *awsAwsjson11_deserializeOpCreateModelVersion) HandleDeserialize(ctx con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateModelVersionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateDetectorVersionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -805,7 +808,7 @@ func (m *awsAwsjson11_deserializeOpCreateModelVersion) HandleDeserialize(ctx con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateModelVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateDetectorVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -871,14 +874,14 @@ func awsAwsjson11_deserializeOpErrorCreateModelVersion(response *smithyhttp.Resp } } -type awsAwsjson11_deserializeOpCreateRule struct { +type awsAwsjson11_deserializeOpCreateModel struct { } -func (*awsAwsjson11_deserializeOpCreateRule) ID() string { +func (*awsAwsjson11_deserializeOpCreateModel) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateRule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateModel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -892,9 +895,9 @@ func (m *awsAwsjson11_deserializeOpCreateRule) HandleDeserialize(ctx context.Con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateRule(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateModel(response, &metadata) } - output := &CreateRuleOutput{} + output := &CreateModelOutput{} out.Result = output var buff [1024]byte @@ -914,7 +917,7 @@ func (m *awsAwsjson11_deserializeOpCreateRule) HandleDeserialize(ctx context.Con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateRuleOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateModelOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -928,7 +931,7 @@ func (m *awsAwsjson11_deserializeOpCreateRule) HandleDeserialize(ctx context.Con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateRule(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateModel(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -991,14 +994,14 @@ func awsAwsjson11_deserializeOpErrorCreateRule(response *smithyhttp.Response, me } } -type awsAwsjson11_deserializeOpCreateVariable struct { +type awsAwsjson11_deserializeOpCreateModelVersion struct { } -func (*awsAwsjson11_deserializeOpCreateVariable) ID() string { +func (*awsAwsjson11_deserializeOpCreateModelVersion) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpCreateVariable) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateModelVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1012,9 +1015,9 @@ func (m *awsAwsjson11_deserializeOpCreateVariable) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorCreateVariable(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateModelVersion(response, &metadata) } - output := &CreateVariableOutput{} + output := &CreateModelVersionOutput{} out.Result = output var buff [1024]byte @@ -1034,7 +1037,7 @@ func (m *awsAwsjson11_deserializeOpCreateVariable) HandleDeserialize(ctx context return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentCreateVariableOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateModelVersionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1048,7 +1051,7 @@ func (m *awsAwsjson11_deserializeOpCreateVariable) HandleDeserialize(ctx context return out, metadata, err } -func awsAwsjson11_deserializeOpErrorCreateVariable(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateModelVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1095,6 +1098,9 @@ func awsAwsjson11_deserializeOpErrorCreateVariable(response *smithyhttp.Response case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) @@ -1111,14 +1117,14 @@ func awsAwsjson11_deserializeOpErrorCreateVariable(response *smithyhttp.Response } } -type awsAwsjson11_deserializeOpDeleteBatchPredictionJob struct { +type awsAwsjson11_deserializeOpCreateRule struct { } -func (*awsAwsjson11_deserializeOpDeleteBatchPredictionJob) ID() string { +func (*awsAwsjson11_deserializeOpCreateRule) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteBatchPredictionJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateRule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1132,9 +1138,9 @@ func (m *awsAwsjson11_deserializeOpDeleteBatchPredictionJob) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteBatchPredictionJob(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateRule(response, &metadata) } - output := &DeleteBatchPredictionJobOutput{} + output := &CreateRuleOutput{} out.Result = output var buff [1024]byte @@ -1154,7 +1160,7 @@ func (m *awsAwsjson11_deserializeOpDeleteBatchPredictionJob) HandleDeserialize(c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDeleteBatchPredictionJobOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateRuleOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1168,7 +1174,7 @@ func (m *awsAwsjson11_deserializeOpDeleteBatchPredictionJob) HandleDeserialize(c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteBatchPredictionJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateRule(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1215,9 +1221,6 @@ func awsAwsjson11_deserializeOpErrorDeleteBatchPredictionJob(response *smithyhtt case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) @@ -1234,14 +1237,14 @@ func awsAwsjson11_deserializeOpErrorDeleteBatchPredictionJob(response *smithyhtt } } -type awsAwsjson11_deserializeOpDeleteDetector struct { +type awsAwsjson11_deserializeOpCreateVariable struct { } -func (*awsAwsjson11_deserializeOpDeleteDetector) ID() string { +func (*awsAwsjson11_deserializeOpCreateVariable) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteDetector) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpCreateVariable) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1255,9 +1258,9 @@ func (m *awsAwsjson11_deserializeOpDeleteDetector) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteDetector(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorCreateVariable(response, &metadata) } - output := &DeleteDetectorOutput{} + output := &CreateVariableOutput{} out.Result = output var buff [1024]byte @@ -1277,7 +1280,7 @@ func (m *awsAwsjson11_deserializeOpDeleteDetector) HandleDeserialize(ctx context return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDeleteDetectorOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentCreateVariableOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1291,7 +1294,7 @@ func (m *awsAwsjson11_deserializeOpDeleteDetector) HandleDeserialize(ctx context return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteDetector(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorCreateVariable(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1335,9 +1338,6 @@ func awsAwsjson11_deserializeOpErrorDeleteDetector(response *smithyhttp.Response case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) @@ -1357,14 +1357,14 @@ func awsAwsjson11_deserializeOpErrorDeleteDetector(response *smithyhttp.Response } } -type awsAwsjson11_deserializeOpDeleteDetectorVersion struct { +type awsAwsjson11_deserializeOpDeleteBatchImportJob struct { } -func (*awsAwsjson11_deserializeOpDeleteDetectorVersion) ID() string { +func (*awsAwsjson11_deserializeOpDeleteBatchImportJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteDetectorVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteBatchImportJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1378,9 +1378,9 @@ func (m *awsAwsjson11_deserializeOpDeleteDetectorVersion) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteDetectorVersion(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteBatchImportJob(response, &metadata) } - output := &DeleteDetectorVersionOutput{} + output := &DeleteBatchImportJobOutput{} out.Result = output var buff [1024]byte @@ -1400,7 +1400,7 @@ func (m *awsAwsjson11_deserializeOpDeleteDetectorVersion) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDeleteDetectorVersionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteBatchImportJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1414,7 +1414,7 @@ func (m *awsAwsjson11_deserializeOpDeleteDetectorVersion) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteDetectorVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteBatchImportJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1458,15 +1458,9 @@ func awsAwsjson11_deserializeOpErrorDeleteDetectorVersion(response *smithyhttp.R case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) @@ -1483,14 +1477,14 @@ func awsAwsjson11_deserializeOpErrorDeleteDetectorVersion(response *smithyhttp.R } } -type awsAwsjson11_deserializeOpDeleteEntityType struct { +type awsAwsjson11_deserializeOpDeleteBatchPredictionJob struct { } -func (*awsAwsjson11_deserializeOpDeleteEntityType) ID() string { +func (*awsAwsjson11_deserializeOpDeleteBatchPredictionJob) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteEntityType) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteBatchPredictionJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1504,9 +1498,9 @@ func (m *awsAwsjson11_deserializeOpDeleteEntityType) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteEntityType(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteBatchPredictionJob(response, &metadata) } - output := &DeleteEntityTypeOutput{} + output := &DeleteBatchPredictionJobOutput{} out.Result = output var buff [1024]byte @@ -1526,7 +1520,7 @@ func (m *awsAwsjson11_deserializeOpDeleteEntityType) HandleDeserialize(ctx conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDeleteEntityTypeOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteBatchPredictionJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1540,7 +1534,7 @@ func (m *awsAwsjson11_deserializeOpDeleteEntityType) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteEntityType(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteBatchPredictionJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1584,9 +1578,6 @@ func awsAwsjson11_deserializeOpErrorDeleteEntityType(response *smithyhttp.Respon case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) @@ -1606,14 +1597,14 @@ func awsAwsjson11_deserializeOpErrorDeleteEntityType(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpDeleteEvent struct { +type awsAwsjson11_deserializeOpDeleteDetector struct { } -func (*awsAwsjson11_deserializeOpDeleteEvent) ID() string { +func (*awsAwsjson11_deserializeOpDeleteDetector) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteEvent) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteDetector) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1627,9 +1618,9 @@ func (m *awsAwsjson11_deserializeOpDeleteEvent) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteEvent(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteDetector(response, &metadata) } - output := &DeleteEventOutput{} + output := &DeleteDetectorOutput{} out.Result = output var buff [1024]byte @@ -1649,7 +1640,7 @@ func (m *awsAwsjson11_deserializeOpDeleteEvent) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDeleteEventOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteDetectorOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1663,7 +1654,7 @@ func (m *awsAwsjson11_deserializeOpDeleteEvent) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteEvent(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteDetector(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1707,6 +1698,9 @@ func awsAwsjson11_deserializeOpErrorDeleteEvent(response *smithyhttp.Response, m case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) @@ -1726,14 +1720,14 @@ func awsAwsjson11_deserializeOpErrorDeleteEvent(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpDeleteEventType struct { +type awsAwsjson11_deserializeOpDeleteDetectorVersion struct { } -func (*awsAwsjson11_deserializeOpDeleteEventType) ID() string { +func (*awsAwsjson11_deserializeOpDeleteDetectorVersion) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteEventType) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteDetectorVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1747,9 +1741,9 @@ func (m *awsAwsjson11_deserializeOpDeleteEventType) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteEventType(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteDetectorVersion(response, &metadata) } - output := &DeleteEventTypeOutput{} + output := &DeleteDetectorVersionOutput{} out.Result = output var buff [1024]byte @@ -1769,7 +1763,7 @@ func (m *awsAwsjson11_deserializeOpDeleteEventType) HandleDeserialize(ctx contex return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDeleteEventTypeOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteDetectorVersionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1783,7 +1777,7 @@ func (m *awsAwsjson11_deserializeOpDeleteEventType) HandleDeserialize(ctx contex return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteEventType(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteDetectorVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1833,6 +1827,9 @@ func awsAwsjson11_deserializeOpErrorDeleteEventType(response *smithyhttp.Respons case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) @@ -1849,14 +1846,14 @@ func awsAwsjson11_deserializeOpErrorDeleteEventType(response *smithyhttp.Respons } } -type awsAwsjson11_deserializeOpDeleteExternalModel struct { +type awsAwsjson11_deserializeOpDeleteEntityType struct { } -func (*awsAwsjson11_deserializeOpDeleteExternalModel) ID() string { +func (*awsAwsjson11_deserializeOpDeleteEntityType) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteExternalModel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteEntityType) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1870,9 +1867,9 @@ func (m *awsAwsjson11_deserializeOpDeleteExternalModel) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteExternalModel(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteEntityType(response, &metadata) } - output := &DeleteExternalModelOutput{} + output := &DeleteEntityTypeOutput{} out.Result = output var buff [1024]byte @@ -1892,7 +1889,7 @@ func (m *awsAwsjson11_deserializeOpDeleteExternalModel) HandleDeserialize(ctx co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDeleteExternalModelOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteEntityTypeOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1906,7 +1903,7 @@ func (m *awsAwsjson11_deserializeOpDeleteExternalModel) HandleDeserialize(ctx co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteExternalModel(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteEntityType(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1972,14 +1969,14 @@ func awsAwsjson11_deserializeOpErrorDeleteExternalModel(response *smithyhttp.Res } } -type awsAwsjson11_deserializeOpDeleteLabel struct { +type awsAwsjson11_deserializeOpDeleteEvent struct { } -func (*awsAwsjson11_deserializeOpDeleteLabel) ID() string { +func (*awsAwsjson11_deserializeOpDeleteEvent) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteLabel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteEvent) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1993,9 +1990,9 @@ func (m *awsAwsjson11_deserializeOpDeleteLabel) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteLabel(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteEvent(response, &metadata) } - output := &DeleteLabelOutput{} + output := &DeleteEventOutput{} out.Result = output var buff [1024]byte @@ -2015,7 +2012,7 @@ func (m *awsAwsjson11_deserializeOpDeleteLabel) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDeleteLabelOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteEventOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2029,7 +2026,7 @@ func (m *awsAwsjson11_deserializeOpDeleteLabel) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteLabel(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteEvent(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2070,8 +2067,8 @@ func awsAwsjson11_deserializeOpErrorDeleteLabel(response *smithyhttp.Response, m } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) @@ -2092,14 +2089,14 @@ func awsAwsjson11_deserializeOpErrorDeleteLabel(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpDeleteModel struct { +type awsAwsjson11_deserializeOpDeleteEventsByEventType struct { } -func (*awsAwsjson11_deserializeOpDeleteModel) ID() string { +func (*awsAwsjson11_deserializeOpDeleteEventsByEventType) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteModel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteEventsByEventType) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2113,9 +2110,9 @@ func (m *awsAwsjson11_deserializeOpDeleteModel) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteModel(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteEventsByEventType(response, &metadata) } - output := &DeleteModelOutput{} + output := &DeleteEventsByEventTypeOutput{} out.Result = output var buff [1024]byte @@ -2135,7 +2132,7 @@ func (m *awsAwsjson11_deserializeOpDeleteModel) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDeleteModelOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteEventsByEventTypeOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2149,7 +2146,7 @@ func (m *awsAwsjson11_deserializeOpDeleteModel) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteModel(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteEventsByEventType(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2199,6 +2196,9 @@ func awsAwsjson11_deserializeOpErrorDeleteModel(response *smithyhttp.Response, m case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) @@ -2215,14 +2215,14 @@ func awsAwsjson11_deserializeOpErrorDeleteModel(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpDeleteModelVersion struct { +type awsAwsjson11_deserializeOpDeleteEventType struct { } -func (*awsAwsjson11_deserializeOpDeleteModelVersion) ID() string { +func (*awsAwsjson11_deserializeOpDeleteEventType) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteModelVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteEventType) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2236,9 +2236,9 @@ func (m *awsAwsjson11_deserializeOpDeleteModelVersion) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteModelVersion(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteEventType(response, &metadata) } - output := &DeleteModelVersionOutput{} + output := &DeleteEventTypeOutput{} out.Result = output var buff [1024]byte @@ -2258,7 +2258,7 @@ func (m *awsAwsjson11_deserializeOpDeleteModelVersion) HandleDeserialize(ctx con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDeleteModelVersionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteEventTypeOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2272,7 +2272,7 @@ func (m *awsAwsjson11_deserializeOpDeleteModelVersion) HandleDeserialize(ctx con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteModelVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteEventType(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2338,14 +2338,14 @@ func awsAwsjson11_deserializeOpErrorDeleteModelVersion(response *smithyhttp.Resp } } -type awsAwsjson11_deserializeOpDeleteOutcome struct { +type awsAwsjson11_deserializeOpDeleteExternalModel struct { } -func (*awsAwsjson11_deserializeOpDeleteOutcome) ID() string { +func (*awsAwsjson11_deserializeOpDeleteExternalModel) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteOutcome) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteExternalModel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2359,9 +2359,9 @@ func (m *awsAwsjson11_deserializeOpDeleteOutcome) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteOutcome(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteExternalModel(response, &metadata) } - output := &DeleteOutcomeOutput{} + output := &DeleteExternalModelOutput{} out.Result = output var buff [1024]byte @@ -2381,7 +2381,7 @@ func (m *awsAwsjson11_deserializeOpDeleteOutcome) HandleDeserialize(ctx context. return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDeleteOutcomeOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteExternalModelOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2395,7 +2395,7 @@ func (m *awsAwsjson11_deserializeOpDeleteOutcome) HandleDeserialize(ctx context. return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteOutcome(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteExternalModel(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2461,14 +2461,14 @@ func awsAwsjson11_deserializeOpErrorDeleteOutcome(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpDeleteRule struct { +type awsAwsjson11_deserializeOpDeleteLabel struct { } -func (*awsAwsjson11_deserializeOpDeleteRule) ID() string { +func (*awsAwsjson11_deserializeOpDeleteLabel) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteRule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteLabel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2482,9 +2482,9 @@ func (m *awsAwsjson11_deserializeOpDeleteRule) HandleDeserialize(ctx context.Con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteRule(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteLabel(response, &metadata) } - output := &DeleteRuleOutput{} + output := &DeleteLabelOutput{} out.Result = output var buff [1024]byte @@ -2504,7 +2504,7 @@ func (m *awsAwsjson11_deserializeOpDeleteRule) HandleDeserialize(ctx context.Con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDeleteRuleOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteLabelOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2518,7 +2518,7 @@ func (m *awsAwsjson11_deserializeOpDeleteRule) HandleDeserialize(ctx context.Con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteRule(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteLabel(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2559,9 +2559,6 @@ func awsAwsjson11_deserializeOpErrorDeleteRule(response *smithyhttp.Response, me } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): return awsAwsjson11_deserializeErrorConflictException(response, errorBody) @@ -2584,14 +2581,14 @@ func awsAwsjson11_deserializeOpErrorDeleteRule(response *smithyhttp.Response, me } } -type awsAwsjson11_deserializeOpDeleteVariable struct { +type awsAwsjson11_deserializeOpDeleteModel struct { } -func (*awsAwsjson11_deserializeOpDeleteVariable) ID() string { +func (*awsAwsjson11_deserializeOpDeleteModel) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteVariable) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteModel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2605,9 +2602,9 @@ func (m *awsAwsjson11_deserializeOpDeleteVariable) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteVariable(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteModel(response, &metadata) } - output := &DeleteVariableOutput{} + output := &DeleteModelOutput{} out.Result = output var buff [1024]byte @@ -2627,7 +2624,7 @@ func (m *awsAwsjson11_deserializeOpDeleteVariable) HandleDeserialize(ctx context return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDeleteVariableOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteModelOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2641,7 +2638,7 @@ func (m *awsAwsjson11_deserializeOpDeleteVariable) HandleDeserialize(ctx context return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteVariable(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteModel(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2707,14 +2704,14 @@ func awsAwsjson11_deserializeOpErrorDeleteVariable(response *smithyhttp.Response } } -type awsAwsjson11_deserializeOpDescribeDetector struct { +type awsAwsjson11_deserializeOpDeleteModelVersion struct { } -func (*awsAwsjson11_deserializeOpDescribeDetector) ID() string { +func (*awsAwsjson11_deserializeOpDeleteModelVersion) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeDetector) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteModelVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2728,9 +2725,9 @@ func (m *awsAwsjson11_deserializeOpDescribeDetector) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeDetector(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteModelVersion(response, &metadata) } - output := &DescribeDetectorOutput{} + output := &DeleteModelVersionOutput{} out.Result = output var buff [1024]byte @@ -2750,7 +2747,7 @@ func (m *awsAwsjson11_deserializeOpDescribeDetector) HandleDeserialize(ctx conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeDetectorOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteModelVersionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2764,7 +2761,7 @@ func (m *awsAwsjson11_deserializeOpDescribeDetector) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeDetector(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteModelVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2808,12 +2805,12 @@ func awsAwsjson11_deserializeOpErrorDescribeDetector(response *smithyhttp.Respon case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) @@ -2830,14 +2827,14 @@ func awsAwsjson11_deserializeOpErrorDescribeDetector(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpDescribeModelVersions struct { +type awsAwsjson11_deserializeOpDeleteOutcome struct { } -func (*awsAwsjson11_deserializeOpDescribeModelVersions) ID() string { +func (*awsAwsjson11_deserializeOpDeleteOutcome) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeModelVersions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteOutcome) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2851,9 +2848,9 @@ func (m *awsAwsjson11_deserializeOpDescribeModelVersions) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeModelVersions(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteOutcome(response, &metadata) } - output := &DescribeModelVersionsOutput{} + output := &DeleteOutcomeOutput{} out.Result = output var buff [1024]byte @@ -2873,7 +2870,7 @@ func (m *awsAwsjson11_deserializeOpDescribeModelVersions) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeModelVersionsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteOutcomeOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2887,7 +2884,7 @@ func (m *awsAwsjson11_deserializeOpDescribeModelVersions) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeModelVersions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteOutcome(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2931,12 +2928,12 @@ func awsAwsjson11_deserializeOpErrorDescribeModelVersions(response *smithyhttp.R case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) @@ -2953,14 +2950,14 @@ func awsAwsjson11_deserializeOpErrorDescribeModelVersions(response *smithyhttp.R } } -type awsAwsjson11_deserializeOpGetBatchPredictionJobs struct { +type awsAwsjson11_deserializeOpDeleteRule struct { } -func (*awsAwsjson11_deserializeOpGetBatchPredictionJobs) ID() string { +func (*awsAwsjson11_deserializeOpDeleteRule) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpGetBatchPredictionJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteRule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2974,9 +2971,9 @@ func (m *awsAwsjson11_deserializeOpGetBatchPredictionJobs) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorGetBatchPredictionJobs(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteRule(response, &metadata) } - output := &GetBatchPredictionJobsOutput{} + output := &DeleteRuleOutput{} out.Result = output var buff [1024]byte @@ -2996,7 +2993,7 @@ func (m *awsAwsjson11_deserializeOpGetBatchPredictionJobs) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentGetBatchPredictionJobsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteRuleOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3010,7 +3007,7 @@ func (m *awsAwsjson11_deserializeOpGetBatchPredictionJobs) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorGetBatchPredictionJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteRule(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -3054,12 +3051,12 @@ func awsAwsjson11_deserializeOpErrorGetBatchPredictionJobs(response *smithyhttp. case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) @@ -3076,14 +3073,14 @@ func awsAwsjson11_deserializeOpErrorGetBatchPredictionJobs(response *smithyhttp. } } -type awsAwsjson11_deserializeOpGetDetectors struct { +type awsAwsjson11_deserializeOpDeleteVariable struct { } -func (*awsAwsjson11_deserializeOpGetDetectors) ID() string { +func (*awsAwsjson11_deserializeOpDeleteVariable) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpGetDetectors) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteVariable) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -3097,9 +3094,9 @@ func (m *awsAwsjson11_deserializeOpGetDetectors) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorGetDetectors(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteVariable(response, &metadata) } - output := &GetDetectorsOutput{} + output := &DeleteVariableOutput{} out.Result = output var buff [1024]byte @@ -3119,7 +3116,7 @@ func (m *awsAwsjson11_deserializeOpGetDetectors) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentGetDetectorsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDeleteVariableOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3133,7 +3130,7 @@ func (m *awsAwsjson11_deserializeOpGetDetectors) HandleDeserialize(ctx context.C return out, metadata, err } -func awsAwsjson11_deserializeOpErrorGetDetectors(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteVariable(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -3177,12 +3174,12 @@ func awsAwsjson11_deserializeOpErrorGetDetectors(response *smithyhttp.Response, case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) @@ -3199,14 +3196,14 @@ func awsAwsjson11_deserializeOpErrorGetDetectors(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpGetDetectorVersion struct { +type awsAwsjson11_deserializeOpDescribeDetector struct { } -func (*awsAwsjson11_deserializeOpGetDetectorVersion) ID() string { +func (*awsAwsjson11_deserializeOpDescribeDetector) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpGetDetectorVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeDetector) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -3220,9 +3217,9 @@ func (m *awsAwsjson11_deserializeOpGetDetectorVersion) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorGetDetectorVersion(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeDetector(response, &metadata) } - output := &GetDetectorVersionOutput{} + output := &DescribeDetectorOutput{} out.Result = output var buff [1024]byte @@ -3242,7 +3239,7 @@ func (m *awsAwsjson11_deserializeOpGetDetectorVersion) HandleDeserialize(ctx con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentGetDetectorVersionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeDetectorOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3256,7 +3253,7 @@ func (m *awsAwsjson11_deserializeOpGetDetectorVersion) HandleDeserialize(ctx con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorGetDetectorVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeDetector(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -3322,14 +3319,14 @@ func awsAwsjson11_deserializeOpErrorGetDetectorVersion(response *smithyhttp.Resp } } -type awsAwsjson11_deserializeOpGetEntityTypes struct { +type awsAwsjson11_deserializeOpDescribeModelVersions struct { } -func (*awsAwsjson11_deserializeOpGetEntityTypes) ID() string { +func (*awsAwsjson11_deserializeOpDescribeModelVersions) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpGetEntityTypes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeModelVersions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -3343,9 +3340,9 @@ func (m *awsAwsjson11_deserializeOpGetEntityTypes) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorGetEntityTypes(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeModelVersions(response, &metadata) } - output := &GetEntityTypesOutput{} + output := &DescribeModelVersionsOutput{} out.Result = output var buff [1024]byte @@ -3365,7 +3362,7 @@ func (m *awsAwsjson11_deserializeOpGetEntityTypes) HandleDeserialize(ctx context return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentGetEntityTypesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeModelVersionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3379,7 +3376,7 @@ func (m *awsAwsjson11_deserializeOpGetEntityTypes) HandleDeserialize(ctx context return out, metadata, err } -func awsAwsjson11_deserializeOpErrorGetEntityTypes(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeModelVersions(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -3445,14 +3442,14 @@ func awsAwsjson11_deserializeOpErrorGetEntityTypes(response *smithyhttp.Response } } -type awsAwsjson11_deserializeOpGetEventPrediction struct { +type awsAwsjson11_deserializeOpGetBatchImportJobs struct { } -func (*awsAwsjson11_deserializeOpGetEventPrediction) ID() string { +func (*awsAwsjson11_deserializeOpGetBatchImportJobs) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpGetEventPrediction) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpGetBatchImportJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -3466,9 +3463,9 @@ func (m *awsAwsjson11_deserializeOpGetEventPrediction) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorGetEventPrediction(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorGetBatchImportJobs(response, &metadata) } - output := &GetEventPredictionOutput{} + output := &GetBatchImportJobsOutput{} out.Result = output var buff [1024]byte @@ -3488,7 +3485,7 @@ func (m *awsAwsjson11_deserializeOpGetEventPrediction) HandleDeserialize(ctx con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentGetEventPredictionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentGetBatchImportJobsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3502,7 +3499,7 @@ func (m *awsAwsjson11_deserializeOpGetEventPrediction) HandleDeserialize(ctx con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorGetEventPrediction(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorGetBatchImportJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -3546,18 +3543,12 @@ func awsAwsjson11_deserializeOpErrorGetEventPrediction(response *smithyhttp.Resp case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsAwsjson11_deserializeErrorResourceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) @@ -3574,14 +3565,14 @@ func awsAwsjson11_deserializeOpErrorGetEventPrediction(response *smithyhttp.Resp } } -type awsAwsjson11_deserializeOpGetEventTypes struct { +type awsAwsjson11_deserializeOpGetBatchPredictionJobs struct { } -func (*awsAwsjson11_deserializeOpGetEventTypes) ID() string { +func (*awsAwsjson11_deserializeOpGetBatchPredictionJobs) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpGetEventTypes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpGetBatchPredictionJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -3595,9 +3586,9 @@ func (m *awsAwsjson11_deserializeOpGetEventTypes) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorGetEventTypes(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorGetBatchPredictionJobs(response, &metadata) } - output := &GetEventTypesOutput{} + output := &GetBatchPredictionJobsOutput{} out.Result = output var buff [1024]byte @@ -3617,7 +3608,7 @@ func (m *awsAwsjson11_deserializeOpGetEventTypes) HandleDeserialize(ctx context. return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentGetEventTypesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentGetBatchPredictionJobsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3631,7 +3622,7 @@ func (m *awsAwsjson11_deserializeOpGetEventTypes) HandleDeserialize(ctx context. return out, metadata, err } -func awsAwsjson11_deserializeOpErrorGetEventTypes(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorGetBatchPredictionJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -3697,14 +3688,14 @@ func awsAwsjson11_deserializeOpErrorGetEventTypes(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpGetExternalModels struct { +type awsAwsjson11_deserializeOpGetDeleteEventsByEventTypeStatus struct { } -func (*awsAwsjson11_deserializeOpGetExternalModels) ID() string { +func (*awsAwsjson11_deserializeOpGetDeleteEventsByEventTypeStatus) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpGetExternalModels) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpGetDeleteEventsByEventTypeStatus) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -3718,9 +3709,9 @@ func (m *awsAwsjson11_deserializeOpGetExternalModels) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorGetExternalModels(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorGetDeleteEventsByEventTypeStatus(response, &metadata) } - output := &GetExternalModelsOutput{} + output := &GetDeleteEventsByEventTypeStatusOutput{} out.Result = output var buff [1024]byte @@ -3740,7 +3731,7 @@ func (m *awsAwsjson11_deserializeOpGetExternalModels) HandleDeserialize(ctx cont return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentGetExternalModelsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentGetDeleteEventsByEventTypeStatusOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3754,7 +3745,7 @@ func (m *awsAwsjson11_deserializeOpGetExternalModels) HandleDeserialize(ctx cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorGetExternalModels(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorGetDeleteEventsByEventTypeStatus(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -3820,14 +3811,14 @@ func awsAwsjson11_deserializeOpErrorGetExternalModels(response *smithyhttp.Respo } } -type awsAwsjson11_deserializeOpGetKMSEncryptionKey struct { +type awsAwsjson11_deserializeOpGetDetectors struct { } -func (*awsAwsjson11_deserializeOpGetKMSEncryptionKey) ID() string { +func (*awsAwsjson11_deserializeOpGetDetectors) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpGetKMSEncryptionKey) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpGetDetectors) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -3841,9 +3832,9 @@ func (m *awsAwsjson11_deserializeOpGetKMSEncryptionKey) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorGetKMSEncryptionKey(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorGetDetectors(response, &metadata) } - output := &GetKMSEncryptionKeyOutput{} + output := &GetDetectorsOutput{} out.Result = output var buff [1024]byte @@ -3863,7 +3854,7 @@ func (m *awsAwsjson11_deserializeOpGetKMSEncryptionKey) HandleDeserialize(ctx co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentGetKMSEncryptionKeyOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentGetDetectorsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3877,7 +3868,7 @@ func (m *awsAwsjson11_deserializeOpGetKMSEncryptionKey) HandleDeserialize(ctx co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorGetKMSEncryptionKey(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorGetDetectors(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -3930,6 +3921,9 @@ func awsAwsjson11_deserializeOpErrorGetKMSEncryptionKey(response *smithyhttp.Res case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson11_deserializeErrorValidationException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -3940,14 +3934,14 @@ func awsAwsjson11_deserializeOpErrorGetKMSEncryptionKey(response *smithyhttp.Res } } -type awsAwsjson11_deserializeOpGetLabels struct { +type awsAwsjson11_deserializeOpGetDetectorVersion struct { } -func (*awsAwsjson11_deserializeOpGetLabels) ID() string { +func (*awsAwsjson11_deserializeOpGetDetectorVersion) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpGetLabels) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpGetDetectorVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -3961,9 +3955,9 @@ func (m *awsAwsjson11_deserializeOpGetLabels) HandleDeserialize(ctx context.Cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorGetLabels(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorGetDetectorVersion(response, &metadata) } - output := &GetLabelsOutput{} + output := &GetDetectorVersionOutput{} out.Result = output var buff [1024]byte @@ -3983,7 +3977,7 @@ func (m *awsAwsjson11_deserializeOpGetLabels) HandleDeserialize(ctx context.Cont return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentGetLabelsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentGetDetectorVersionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3997,7 +3991,7 @@ func (m *awsAwsjson11_deserializeOpGetLabels) HandleDeserialize(ctx context.Cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorGetLabels(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorGetDetectorVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -4063,14 +4057,14 @@ func awsAwsjson11_deserializeOpErrorGetLabels(response *smithyhttp.Response, met } } -type awsAwsjson11_deserializeOpGetModels struct { +type awsAwsjson11_deserializeOpGetEntityTypes struct { } -func (*awsAwsjson11_deserializeOpGetModels) ID() string { +func (*awsAwsjson11_deserializeOpGetEntityTypes) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpGetModels) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpGetEntityTypes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -4084,9 +4078,9 @@ func (m *awsAwsjson11_deserializeOpGetModels) HandleDeserialize(ctx context.Cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorGetModels(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorGetEntityTypes(response, &metadata) } - output := &GetModelsOutput{} + output := &GetEntityTypesOutput{} out.Result = output var buff [1024]byte @@ -4106,7 +4100,7 @@ func (m *awsAwsjson11_deserializeOpGetModels) HandleDeserialize(ctx context.Cont return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentGetModelsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentGetEntityTypesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -4120,7 +4114,7 @@ func (m *awsAwsjson11_deserializeOpGetModels) HandleDeserialize(ctx context.Cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorGetModels(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorGetEntityTypes(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -4186,14 +4180,14 @@ func awsAwsjson11_deserializeOpErrorGetModels(response *smithyhttp.Response, met } } -type awsAwsjson11_deserializeOpGetModelVersion struct { +type awsAwsjson11_deserializeOpGetEvent struct { } -func (*awsAwsjson11_deserializeOpGetModelVersion) ID() string { +func (*awsAwsjson11_deserializeOpGetEvent) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpGetModelVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpGetEvent) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -4207,9 +4201,9 @@ func (m *awsAwsjson11_deserializeOpGetModelVersion) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorGetModelVersion(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorGetEvent(response, &metadata) } - output := &GetModelVersionOutput{} + output := &GetEventOutput{} out.Result = output var buff [1024]byte @@ -4229,7 +4223,7 @@ func (m *awsAwsjson11_deserializeOpGetModelVersion) HandleDeserialize(ctx contex return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentGetModelVersionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentGetEventOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -4243,7 +4237,7 @@ func (m *awsAwsjson11_deserializeOpGetModelVersion) HandleDeserialize(ctx contex return out, metadata, err } -func awsAwsjson11_deserializeOpErrorGetModelVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorGetEvent(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -4309,14 +4303,14 @@ func awsAwsjson11_deserializeOpErrorGetModelVersion(response *smithyhttp.Respons } } -type awsAwsjson11_deserializeOpGetOutcomes struct { +type awsAwsjson11_deserializeOpGetEventPrediction struct { } -func (*awsAwsjson11_deserializeOpGetOutcomes) ID() string { +func (*awsAwsjson11_deserializeOpGetEventPrediction) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpGetOutcomes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpGetEventPrediction) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -4330,9 +4324,9 @@ func (m *awsAwsjson11_deserializeOpGetOutcomes) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorGetOutcomes(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorGetEventPrediction(response, &metadata) } - output := &GetOutcomesOutput{} + output := &GetEventPredictionOutput{} out.Result = output var buff [1024]byte @@ -4352,7 +4346,7 @@ func (m *awsAwsjson11_deserializeOpGetOutcomes) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentGetOutcomesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentGetEventPredictionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -4366,7 +4360,7 @@ func (m *awsAwsjson11_deserializeOpGetOutcomes) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorGetOutcomes(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorGetEventPrediction(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -4410,12 +4404,18 @@ func awsAwsjson11_deserializeOpErrorGetOutcomes(response *smithyhttp.Response, m case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsAwsjson11_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) @@ -4432,14 +4432,14 @@ func awsAwsjson11_deserializeOpErrorGetOutcomes(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpGetRules struct { +type awsAwsjson11_deserializeOpGetEventTypes struct { } -func (*awsAwsjson11_deserializeOpGetRules) ID() string { +func (*awsAwsjson11_deserializeOpGetEventTypes) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpGetRules) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpGetEventTypes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -4453,9 +4453,9 @@ func (m *awsAwsjson11_deserializeOpGetRules) HandleDeserialize(ctx context.Conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorGetRules(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorGetEventTypes(response, &metadata) } - output := &GetRulesOutput{} + output := &GetEventTypesOutput{} out.Result = output var buff [1024]byte @@ -4475,7 +4475,7 @@ func (m *awsAwsjson11_deserializeOpGetRules) HandleDeserialize(ctx context.Conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentGetRulesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentGetEventTypesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -4489,7 +4489,7 @@ func (m *awsAwsjson11_deserializeOpGetRules) HandleDeserialize(ctx context.Conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorGetRules(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorGetEventTypes(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -4555,14 +4555,14 @@ func awsAwsjson11_deserializeOpErrorGetRules(response *smithyhttp.Response, meta } } -type awsAwsjson11_deserializeOpGetVariables struct { +type awsAwsjson11_deserializeOpGetExternalModels struct { } -func (*awsAwsjson11_deserializeOpGetVariables) ID() string { +func (*awsAwsjson11_deserializeOpGetExternalModels) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpGetVariables) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpGetExternalModels) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -4576,9 +4576,9 @@ func (m *awsAwsjson11_deserializeOpGetVariables) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorGetVariables(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorGetExternalModels(response, &metadata) } - output := &GetVariablesOutput{} + output := &GetExternalModelsOutput{} out.Result = output var buff [1024]byte @@ -4598,7 +4598,7 @@ func (m *awsAwsjson11_deserializeOpGetVariables) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentGetVariablesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentGetExternalModelsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -4612,7 +4612,7 @@ func (m *awsAwsjson11_deserializeOpGetVariables) HandleDeserialize(ctx context.C return out, metadata, err } -func awsAwsjson11_deserializeOpErrorGetVariables(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorGetExternalModels(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -4678,14 +4678,14 @@ func awsAwsjson11_deserializeOpErrorGetVariables(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpListTagsForResource struct { +type awsAwsjson11_deserializeOpGetKMSEncryptionKey struct { } -func (*awsAwsjson11_deserializeOpListTagsForResource) ID() string { +func (*awsAwsjson11_deserializeOpGetKMSEncryptionKey) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListTagsForResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpGetKMSEncryptionKey) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -4699,9 +4699,9 @@ func (m *awsAwsjson11_deserializeOpListTagsForResource) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListTagsForResource(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorGetKMSEncryptionKey(response, &metadata) } - output := &ListTagsForResourceOutput{} + output := &GetKMSEncryptionKeyOutput{} out.Result = output var buff [1024]byte @@ -4721,7 +4721,7 @@ func (m *awsAwsjson11_deserializeOpListTagsForResource) HandleDeserialize(ctx co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListTagsForResourceOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentGetKMSEncryptionKeyOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -4735,7 +4735,7 @@ func (m *awsAwsjson11_deserializeOpListTagsForResource) HandleDeserialize(ctx co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListTagsForResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorGetKMSEncryptionKey(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -4779,15 +4779,15 @@ func awsAwsjson11_deserializeOpErrorListTagsForResource(response *smithyhttp.Res case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("ValidationException", errorCode): - return awsAwsjson11_deserializeErrorValidationException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -4798,14 +4798,14 @@ func awsAwsjson11_deserializeOpErrorListTagsForResource(response *smithyhttp.Res } } -type awsAwsjson11_deserializeOpPutDetector struct { +type awsAwsjson11_deserializeOpGetLabels struct { } -func (*awsAwsjson11_deserializeOpPutDetector) ID() string { +func (*awsAwsjson11_deserializeOpGetLabels) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpPutDetector) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpGetLabels) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -4819,9 +4819,9 @@ func (m *awsAwsjson11_deserializeOpPutDetector) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorPutDetector(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorGetLabels(response, &metadata) } - output := &PutDetectorOutput{} + output := &GetLabelsOutput{} out.Result = output var buff [1024]byte @@ -4841,7 +4841,7 @@ func (m *awsAwsjson11_deserializeOpPutDetector) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentPutDetectorOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentGetLabelsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -4855,7 +4855,7 @@ func (m *awsAwsjson11_deserializeOpPutDetector) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorPutDetector(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorGetLabels(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -4899,12 +4899,12 @@ func awsAwsjson11_deserializeOpErrorPutDetector(response *smithyhttp.Response, m case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) @@ -4921,14 +4921,14 @@ func awsAwsjson11_deserializeOpErrorPutDetector(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpPutEntityType struct { +type awsAwsjson11_deserializeOpGetModels struct { } -func (*awsAwsjson11_deserializeOpPutEntityType) ID() string { +func (*awsAwsjson11_deserializeOpGetModels) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpPutEntityType) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpGetModels) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -4942,9 +4942,9 @@ func (m *awsAwsjson11_deserializeOpPutEntityType) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorPutEntityType(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorGetModels(response, &metadata) } - output := &PutEntityTypeOutput{} + output := &GetModelsOutput{} out.Result = output var buff [1024]byte @@ -4964,7 +4964,7 @@ func (m *awsAwsjson11_deserializeOpPutEntityType) HandleDeserialize(ctx context. return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentPutEntityTypeOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentGetModelsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -4978,7 +4978,7 @@ func (m *awsAwsjson11_deserializeOpPutEntityType) HandleDeserialize(ctx context. return out, metadata, err } -func awsAwsjson11_deserializeOpErrorPutEntityType(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorGetModels(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -5022,12 +5022,12 @@ func awsAwsjson11_deserializeOpErrorPutEntityType(response *smithyhttp.Response, case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) @@ -5044,14 +5044,14 @@ func awsAwsjson11_deserializeOpErrorPutEntityType(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpPutEventType struct { +type awsAwsjson11_deserializeOpGetModelVersion struct { } -func (*awsAwsjson11_deserializeOpPutEventType) ID() string { +func (*awsAwsjson11_deserializeOpGetModelVersion) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpPutEventType) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpGetModelVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -5065,9 +5065,9 @@ func (m *awsAwsjson11_deserializeOpPutEventType) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorPutEventType(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorGetModelVersion(response, &metadata) } - output := &PutEventTypeOutput{} + output := &GetModelVersionOutput{} out.Result = output var buff [1024]byte @@ -5087,7 +5087,7 @@ func (m *awsAwsjson11_deserializeOpPutEventType) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentPutEventTypeOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentGetModelVersionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5101,7 +5101,7 @@ func (m *awsAwsjson11_deserializeOpPutEventType) HandleDeserialize(ctx context.C return out, metadata, err } -func awsAwsjson11_deserializeOpErrorPutEventType(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorGetModelVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -5145,12 +5145,12 @@ func awsAwsjson11_deserializeOpErrorPutEventType(response *smithyhttp.Response, case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) @@ -5167,14 +5167,14 @@ func awsAwsjson11_deserializeOpErrorPutEventType(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpPutExternalModel struct { +type awsAwsjson11_deserializeOpGetOutcomes struct { } -func (*awsAwsjson11_deserializeOpPutExternalModel) ID() string { +func (*awsAwsjson11_deserializeOpGetOutcomes) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpPutExternalModel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpGetOutcomes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -5188,9 +5188,9 @@ func (m *awsAwsjson11_deserializeOpPutExternalModel) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorPutExternalModel(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorGetOutcomes(response, &metadata) } - output := &PutExternalModelOutput{} + output := &GetOutcomesOutput{} out.Result = output var buff [1024]byte @@ -5210,7 +5210,7 @@ func (m *awsAwsjson11_deserializeOpPutExternalModel) HandleDeserialize(ctx conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentPutExternalModelOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentGetOutcomesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5224,7 +5224,7 @@ func (m *awsAwsjson11_deserializeOpPutExternalModel) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorPutExternalModel(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorGetOutcomes(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -5268,12 +5268,12 @@ func awsAwsjson11_deserializeOpErrorPutExternalModel(response *smithyhttp.Respon case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) @@ -5290,14 +5290,14 @@ func awsAwsjson11_deserializeOpErrorPutExternalModel(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpPutKMSEncryptionKey struct { +type awsAwsjson11_deserializeOpGetRules struct { } -func (*awsAwsjson11_deserializeOpPutKMSEncryptionKey) ID() string { +func (*awsAwsjson11_deserializeOpGetRules) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpPutKMSEncryptionKey) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpGetRules) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -5311,9 +5311,9 @@ func (m *awsAwsjson11_deserializeOpPutKMSEncryptionKey) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorPutKMSEncryptionKey(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorGetRules(response, &metadata) } - output := &PutKMSEncryptionKeyOutput{} + output := &GetRulesOutput{} out.Result = output var buff [1024]byte @@ -5333,7 +5333,7 @@ func (m *awsAwsjson11_deserializeOpPutKMSEncryptionKey) HandleDeserialize(ctx co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentPutKMSEncryptionKeyOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentGetRulesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5347,7 +5347,7 @@ func (m *awsAwsjson11_deserializeOpPutKMSEncryptionKey) HandleDeserialize(ctx co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorPutKMSEncryptionKey(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorGetRules(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -5391,9 +5391,6 @@ func awsAwsjson11_deserializeOpErrorPutKMSEncryptionKey(response *smithyhttp.Res case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) @@ -5416,14 +5413,14 @@ func awsAwsjson11_deserializeOpErrorPutKMSEncryptionKey(response *smithyhttp.Res } } -type awsAwsjson11_deserializeOpPutLabel struct { +type awsAwsjson11_deserializeOpGetVariables struct { } -func (*awsAwsjson11_deserializeOpPutLabel) ID() string { +func (*awsAwsjson11_deserializeOpGetVariables) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpPutLabel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpGetVariables) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -5437,9 +5434,9 @@ func (m *awsAwsjson11_deserializeOpPutLabel) HandleDeserialize(ctx context.Conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorPutLabel(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorGetVariables(response, &metadata) } - output := &PutLabelOutput{} + output := &GetVariablesOutput{} out.Result = output var buff [1024]byte @@ -5459,7 +5456,7 @@ func (m *awsAwsjson11_deserializeOpPutLabel) HandleDeserialize(ctx context.Conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentPutLabelOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentGetVariablesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5473,7 +5470,7 @@ func (m *awsAwsjson11_deserializeOpPutLabel) HandleDeserialize(ctx context.Conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorPutLabel(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorGetVariables(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -5517,12 +5514,12 @@ func awsAwsjson11_deserializeOpErrorPutLabel(response *smithyhttp.Response, meta case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) @@ -5539,14 +5536,14 @@ func awsAwsjson11_deserializeOpErrorPutLabel(response *smithyhttp.Response, meta } } -type awsAwsjson11_deserializeOpPutOutcome struct { +type awsAwsjson11_deserializeOpListTagsForResource struct { } -func (*awsAwsjson11_deserializeOpPutOutcome) ID() string { +func (*awsAwsjson11_deserializeOpListTagsForResource) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpPutOutcome) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListTagsForResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -5560,9 +5557,9 @@ func (m *awsAwsjson11_deserializeOpPutOutcome) HandleDeserialize(ctx context.Con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorPutOutcome(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListTagsForResource(response, &metadata) } - output := &PutOutcomeOutput{} + output := &ListTagsForResourceOutput{} out.Result = output var buff [1024]byte @@ -5582,7 +5579,7 @@ func (m *awsAwsjson11_deserializeOpPutOutcome) HandleDeserialize(ctx context.Con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentPutOutcomeOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListTagsForResourceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5596,7 +5593,7 @@ func (m *awsAwsjson11_deserializeOpPutOutcome) HandleDeserialize(ctx context.Con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorPutOutcome(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListTagsForResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -5640,11 +5637,8 @@ func awsAwsjson11_deserializeOpErrorPutOutcome(response *smithyhttp.Response, me case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - - case strings.EqualFold("InternalServerException", errorCode): - return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) @@ -5662,14 +5656,14 @@ func awsAwsjson11_deserializeOpErrorPutOutcome(response *smithyhttp.Response, me } } -type awsAwsjson11_deserializeOpTagResource struct { +type awsAwsjson11_deserializeOpPutDetector struct { } -func (*awsAwsjson11_deserializeOpTagResource) ID() string { +func (*awsAwsjson11_deserializeOpPutDetector) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpTagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpPutDetector) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -5683,9 +5677,9 @@ func (m *awsAwsjson11_deserializeOpTagResource) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorTagResource(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorPutDetector(response, &metadata) } - output := &TagResourceOutput{} + output := &PutDetectorOutput{} out.Result = output var buff [1024]byte @@ -5705,7 +5699,7 @@ func (m *awsAwsjson11_deserializeOpTagResource) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentTagResourceOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentPutDetectorOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5719,7 +5713,7 @@ func (m *awsAwsjson11_deserializeOpTagResource) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorTagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorPutDetector(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -5763,8 +5757,11 @@ func awsAwsjson11_deserializeOpErrorTagResource(response *smithyhttp.Response, m case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) @@ -5782,14 +5779,14 @@ func awsAwsjson11_deserializeOpErrorTagResource(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpUntagResource struct { +type awsAwsjson11_deserializeOpPutEntityType struct { } -func (*awsAwsjson11_deserializeOpUntagResource) ID() string { +func (*awsAwsjson11_deserializeOpPutEntityType) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUntagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpPutEntityType) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -5803,9 +5800,9 @@ func (m *awsAwsjson11_deserializeOpUntagResource) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUntagResource(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorPutEntityType(response, &metadata) } - output := &UntagResourceOutput{} + output := &PutEntityTypeOutput{} out.Result = output var buff [1024]byte @@ -5825,7 +5822,7 @@ func (m *awsAwsjson11_deserializeOpUntagResource) HandleDeserialize(ctx context. return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUntagResourceOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentPutEntityTypeOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5839,7 +5836,7 @@ func (m *awsAwsjson11_deserializeOpUntagResource) HandleDeserialize(ctx context. return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUntagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorPutEntityType(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -5883,8 +5880,11 @@ func awsAwsjson11_deserializeOpErrorUntagResource(response *smithyhttp.Response, case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) @@ -5902,14 +5902,14 @@ func awsAwsjson11_deserializeOpErrorUntagResource(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpUpdateDetectorVersion struct { +type awsAwsjson11_deserializeOpPutEventType struct { } -func (*awsAwsjson11_deserializeOpUpdateDetectorVersion) ID() string { +func (*awsAwsjson11_deserializeOpPutEventType) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateDetectorVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpPutEventType) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -5923,9 +5923,9 @@ func (m *awsAwsjson11_deserializeOpUpdateDetectorVersion) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateDetectorVersion(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorPutEventType(response, &metadata) } - output := &UpdateDetectorVersionOutput{} + output := &PutEventTypeOutput{} out.Result = output var buff [1024]byte @@ -5945,7 +5945,7 @@ func (m *awsAwsjson11_deserializeOpUpdateDetectorVersion) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateDetectorVersionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentPutEventTypeOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5959,7 +5959,7 @@ func (m *awsAwsjson11_deserializeOpUpdateDetectorVersion) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateDetectorVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorPutEventType(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -6009,9 +6009,6 @@ func awsAwsjson11_deserializeOpErrorUpdateDetectorVersion(response *smithyhttp.R case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) @@ -6028,14 +6025,14 @@ func awsAwsjson11_deserializeOpErrorUpdateDetectorVersion(response *smithyhttp.R } } -type awsAwsjson11_deserializeOpUpdateDetectorVersionMetadata struct { +type awsAwsjson11_deserializeOpPutExternalModel struct { } -func (*awsAwsjson11_deserializeOpUpdateDetectorVersionMetadata) ID() string { +func (*awsAwsjson11_deserializeOpPutExternalModel) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateDetectorVersionMetadata) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpPutExternalModel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -6049,9 +6046,9 @@ func (m *awsAwsjson11_deserializeOpUpdateDetectorVersionMetadata) HandleDeserial } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateDetectorVersionMetadata(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorPutExternalModel(response, &metadata) } - output := &UpdateDetectorVersionMetadataOutput{} + output := &PutExternalModelOutput{} out.Result = output var buff [1024]byte @@ -6071,7 +6068,7 @@ func (m *awsAwsjson11_deserializeOpUpdateDetectorVersionMetadata) HandleDeserial return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateDetectorVersionMetadataOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentPutExternalModelOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6085,7 +6082,7 @@ func (m *awsAwsjson11_deserializeOpUpdateDetectorVersionMetadata) HandleDeserial return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateDetectorVersionMetadata(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorPutExternalModel(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -6151,14 +6148,14 @@ func awsAwsjson11_deserializeOpErrorUpdateDetectorVersionMetadata(response *smit } } -type awsAwsjson11_deserializeOpUpdateDetectorVersionStatus struct { +type awsAwsjson11_deserializeOpPutKMSEncryptionKey struct { } -func (*awsAwsjson11_deserializeOpUpdateDetectorVersionStatus) ID() string { +func (*awsAwsjson11_deserializeOpPutKMSEncryptionKey) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateDetectorVersionStatus) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpPutKMSEncryptionKey) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -6172,9 +6169,9 @@ func (m *awsAwsjson11_deserializeOpUpdateDetectorVersionStatus) HandleDeserializ } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateDetectorVersionStatus(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorPutKMSEncryptionKey(response, &metadata) } - output := &UpdateDetectorVersionStatusOutput{} + output := &PutKMSEncryptionKeyOutput{} out.Result = output var buff [1024]byte @@ -6194,7 +6191,7 @@ func (m *awsAwsjson11_deserializeOpUpdateDetectorVersionStatus) HandleDeserializ return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateDetectorVersionStatusOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentPutKMSEncryptionKeyOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6208,7 +6205,7 @@ func (m *awsAwsjson11_deserializeOpUpdateDetectorVersionStatus) HandleDeserializ return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateDetectorVersionStatus(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorPutKMSEncryptionKey(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -6277,14 +6274,14 @@ func awsAwsjson11_deserializeOpErrorUpdateDetectorVersionStatus(response *smithy } } -type awsAwsjson11_deserializeOpUpdateModel struct { +type awsAwsjson11_deserializeOpPutLabel struct { } -func (*awsAwsjson11_deserializeOpUpdateModel) ID() string { +func (*awsAwsjson11_deserializeOpPutLabel) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateModel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpPutLabel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -6298,9 +6295,9 @@ func (m *awsAwsjson11_deserializeOpUpdateModel) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateModel(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorPutLabel(response, &metadata) } - output := &UpdateModelOutput{} + output := &PutLabelOutput{} out.Result = output var buff [1024]byte @@ -6320,7 +6317,7 @@ func (m *awsAwsjson11_deserializeOpUpdateModel) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateModelOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentPutLabelOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6334,7 +6331,7 @@ func (m *awsAwsjson11_deserializeOpUpdateModel) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateModel(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorPutLabel(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -6384,9 +6381,6 @@ func awsAwsjson11_deserializeOpErrorUpdateModel(response *smithyhttp.Response, m case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) @@ -6403,14 +6397,14 @@ func awsAwsjson11_deserializeOpErrorUpdateModel(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpUpdateModelVersion struct { +type awsAwsjson11_deserializeOpPutOutcome struct { } -func (*awsAwsjson11_deserializeOpUpdateModelVersion) ID() string { +func (*awsAwsjson11_deserializeOpPutOutcome) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateModelVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpPutOutcome) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -6424,9 +6418,9 @@ func (m *awsAwsjson11_deserializeOpUpdateModelVersion) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateModelVersion(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorPutOutcome(response, &metadata) } - output := &UpdateModelVersionOutput{} + output := &PutOutcomeOutput{} out.Result = output var buff [1024]byte @@ -6446,7 +6440,7 @@ func (m *awsAwsjson11_deserializeOpUpdateModelVersion) HandleDeserialize(ctx con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateModelVersionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentPutOutcomeOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6460,7 +6454,7 @@ func (m *awsAwsjson11_deserializeOpUpdateModelVersion) HandleDeserialize(ctx con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateModelVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorPutOutcome(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -6510,9 +6504,6 @@ func awsAwsjson11_deserializeOpErrorUpdateModelVersion(response *smithyhttp.Resp case strings.EqualFold("InternalServerException", errorCode): return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) @@ -6529,14 +6520,14 @@ func awsAwsjson11_deserializeOpErrorUpdateModelVersion(response *smithyhttp.Resp } } -type awsAwsjson11_deserializeOpUpdateModelVersionStatus struct { +type awsAwsjson11_deserializeOpSendEvent struct { } -func (*awsAwsjson11_deserializeOpUpdateModelVersionStatus) ID() string { +func (*awsAwsjson11_deserializeOpSendEvent) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateModelVersionStatus) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpSendEvent) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -6550,9 +6541,9 @@ func (m *awsAwsjson11_deserializeOpUpdateModelVersionStatus) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateModelVersionStatus(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorSendEvent(response, &metadata) } - output := &UpdateModelVersionStatusOutput{} + output := &SendEventOutput{} out.Result = output var buff [1024]byte @@ -6572,7 +6563,7 @@ func (m *awsAwsjson11_deserializeOpUpdateModelVersionStatus) HandleDeserialize(c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateModelVersionStatusOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentSendEventOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6586,7 +6577,7 @@ func (m *awsAwsjson11_deserializeOpUpdateModelVersionStatus) HandleDeserialize(c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateModelVersionStatus(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorSendEvent(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -6655,14 +6646,14 @@ func awsAwsjson11_deserializeOpErrorUpdateModelVersionStatus(response *smithyhtt } } -type awsAwsjson11_deserializeOpUpdateRuleMetadata struct { +type awsAwsjson11_deserializeOpTagResource struct { } -func (*awsAwsjson11_deserializeOpUpdateRuleMetadata) ID() string { +func (*awsAwsjson11_deserializeOpTagResource) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateRuleMetadata) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpTagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -6676,9 +6667,9 @@ func (m *awsAwsjson11_deserializeOpUpdateRuleMetadata) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateRuleMetadata(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorTagResource(response, &metadata) } - output := &UpdateRuleMetadataOutput{} + output := &TagResourceOutput{} out.Result = output var buff [1024]byte @@ -6698,7 +6689,7 @@ func (m *awsAwsjson11_deserializeOpUpdateRuleMetadata) HandleDeserialize(ctx con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateRuleMetadataOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentTagResourceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6712,7 +6703,7 @@ func (m *awsAwsjson11_deserializeOpUpdateRuleMetadata) HandleDeserialize(ctx con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateRuleMetadata(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorTagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -6756,12 +6747,6 @@ func awsAwsjson11_deserializeOpErrorUpdateRuleMetadata(response *smithyhttp.Resp case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - - case strings.EqualFold("InternalServerException", errorCode): - return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) @@ -6781,14 +6766,14 @@ func awsAwsjson11_deserializeOpErrorUpdateRuleMetadata(response *smithyhttp.Resp } } -type awsAwsjson11_deserializeOpUpdateRuleVersion struct { +type awsAwsjson11_deserializeOpUntagResource struct { } -func (*awsAwsjson11_deserializeOpUpdateRuleVersion) ID() string { +func (*awsAwsjson11_deserializeOpUntagResource) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateRuleVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUntagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -6802,9 +6787,9 @@ func (m *awsAwsjson11_deserializeOpUpdateRuleVersion) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateRuleVersion(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUntagResource(response, &metadata) } - output := &UpdateRuleVersionOutput{} + output := &UntagResourceOutput{} out.Result = output var buff [1024]byte @@ -6824,7 +6809,7 @@ func (m *awsAwsjson11_deserializeOpUpdateRuleVersion) HandleDeserialize(ctx cont return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateRuleVersionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUntagResourceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6838,7 +6823,7 @@ func (m *awsAwsjson11_deserializeOpUpdateRuleVersion) HandleDeserialize(ctx cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateRuleVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUntagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -6882,12 +6867,6 @@ func awsAwsjson11_deserializeOpErrorUpdateRuleVersion(response *smithyhttp.Respo case strings.EqualFold("AccessDeniedException", errorCode): return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - - case strings.EqualFold("InternalServerException", errorCode): - return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) @@ -6907,14 +6886,14 @@ func awsAwsjson11_deserializeOpErrorUpdateRuleVersion(response *smithyhttp.Respo } } -type awsAwsjson11_deserializeOpUpdateVariable struct { +type awsAwsjson11_deserializeOpUpdateDetectorVersion struct { } -func (*awsAwsjson11_deserializeOpUpdateVariable) ID() string { +func (*awsAwsjson11_deserializeOpUpdateDetectorVersion) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateVariable) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateDetectorVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -6928,9 +6907,9 @@ func (m *awsAwsjson11_deserializeOpUpdateVariable) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateVariable(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateDetectorVersion(response, &metadata) } - output := &UpdateVariableOutput{} + output := &UpdateDetectorVersionOutput{} out.Result = output var buff [1024]byte @@ -6950,7 +6929,7 @@ func (m *awsAwsjson11_deserializeOpUpdateVariable) HandleDeserialize(ctx context return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateVariableOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateDetectorVersionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6964,7 +6943,7 @@ func (m *awsAwsjson11_deserializeOpUpdateVariable) HandleDeserialize(ctx context return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateVariable(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateDetectorVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -7033,11 +7012,36 @@ func awsAwsjson11_deserializeOpErrorUpdateVariable(response *smithyhttp.Response } } -func awsAwsjson11_deserializeErrorAccessDeniedException(response *smithyhttp.Response, errorBody *bytes.Reader) error { +type awsAwsjson11_deserializeOpUpdateDetectorVersionMetadata struct { +} + +func (*awsAwsjson11_deserializeOpUpdateDetectorVersionMetadata) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateDetectorVersionMetadata) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateDetectorVersionMetadata(response, &metadata) + } + output := &UpdateDetectorVersionMetadataOutput{} + out.Result = output + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) + body := io.TeeReader(response.Body, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() var shape interface{} @@ -7048,12 +7052,10 @@ func awsAwsjson11_deserializeErrorAccessDeniedException(response *smithyhttp.Res Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - output := &types.AccessDeniedException{} - err := awsAwsjson11_deserializeDocumentAccessDeniedException(&output, shape) - + err = awsAwsjson11_deserializeOpDocumentUpdateDetectorVersionMetadataOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -7061,22 +7063,35 @@ func awsAwsjson11_deserializeErrorAccessDeniedException(response *smithyhttp.Res Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - errorBody.Seek(0, io.SeekStart) - return output + return out, metadata, err } -func awsAwsjson11_deserializeErrorConflictException(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func awsAwsjson11_deserializeOpErrorUpdateDetectorVersionMetadata(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) body := io.TeeReader(errorBody, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) err = &smithy.DeserializationError{ @@ -7086,28 +7101,70 @@ func awsAwsjson11_deserializeErrorConflictException(response *smithyhttp.Respons return err } - output := &types.ConflictException{} - err := awsAwsjson11_deserializeDocumentConflictException(&output, shape) + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) - err = &smithy.DeserializationError{ - Err: fmt.Errorf("failed to decode response body, %w", err), - Snapshot: snapshot.Bytes(), + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson11_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, } - return err + return genericError + } +} - errorBody.Seek(0, io.SeekStart) - return output +type awsAwsjson11_deserializeOpUpdateDetectorVersionStatus struct { } -func awsAwsjson11_deserializeErrorInternalServerException(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func (*awsAwsjson11_deserializeOpUpdateDetectorVersionStatus) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateDetectorVersionStatus) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateDetectorVersionStatus(response, &metadata) + } + output := &UpdateDetectorVersionStatusOutput{} + out.Result = output + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) + body := io.TeeReader(response.Body, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() var shape interface{} @@ -7118,12 +7175,10 @@ func awsAwsjson11_deserializeErrorInternalServerException(response *smithyhttp.R Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - output := &types.InternalServerException{} - err := awsAwsjson11_deserializeDocumentInternalServerException(&output, shape) - + err = awsAwsjson11_deserializeOpDocumentUpdateDetectorVersionStatusOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -7131,22 +7186,1077 @@ func awsAwsjson11_deserializeErrorInternalServerException(response *smithyhttp.R Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - errorBody.Seek(0, io.SeekStart) - return output + return out, metadata, err } -func awsAwsjson11_deserializeErrorResourceNotFoundException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) +func awsAwsjson11_deserializeOpErrorUpdateDetectorVersionStatus(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) - body := io.TeeReader(errorBody, ringBuffer) - decoder := json.NewDecoder(body) - decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson11_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdateEventLabel struct { +} + +func (*awsAwsjson11_deserializeOpUpdateEventLabel) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateEventLabel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateEventLabel(response, &metadata) + } + output := &UpdateEventLabelOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsAwsjson11_deserializeOpDocumentUpdateEventLabelOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorUpdateEventLabel(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson11_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdateModel struct { +} + +func (*awsAwsjson11_deserializeOpUpdateModel) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateModel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateModel(response, &metadata) + } + output := &UpdateModelOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsAwsjson11_deserializeOpDocumentUpdateModelOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorUpdateModel(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson11_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdateModelVersion struct { +} + +func (*awsAwsjson11_deserializeOpUpdateModelVersion) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateModelVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateModelVersion(response, &metadata) + } + output := &UpdateModelVersionOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsAwsjson11_deserializeOpDocumentUpdateModelVersionOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorUpdateModelVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson11_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdateModelVersionStatus struct { +} + +func (*awsAwsjson11_deserializeOpUpdateModelVersionStatus) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateModelVersionStatus) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateModelVersionStatus(response, &metadata) + } + output := &UpdateModelVersionStatusOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsAwsjson11_deserializeOpDocumentUpdateModelVersionStatusOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorUpdateModelVersionStatus(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson11_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdateRuleMetadata struct { +} + +func (*awsAwsjson11_deserializeOpUpdateRuleMetadata) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateRuleMetadata) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateRuleMetadata(response, &metadata) + } + output := &UpdateRuleMetadataOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsAwsjson11_deserializeOpDocumentUpdateRuleMetadataOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorUpdateRuleMetadata(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson11_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdateRuleVersion struct { +} + +func (*awsAwsjson11_deserializeOpUpdateRuleVersion) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateRuleVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateRuleVersion(response, &metadata) + } + output := &UpdateRuleVersionOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsAwsjson11_deserializeOpDocumentUpdateRuleVersionOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorUpdateRuleVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson11_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdateVariable struct { +} + +func (*awsAwsjson11_deserializeOpUpdateVariable) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateVariable) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateVariable(response, &metadata) + } + output := &UpdateVariableOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsAwsjson11_deserializeOpDocumentUpdateVariableOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorUpdateVariable(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson11_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsAwsjson11_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson11_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsAwsjson11_deserializeErrorAccessDeniedException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.AccessDeniedException{} + err := awsAwsjson11_deserializeDocumentAccessDeniedException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorConflictException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.ConflictException{} + err := awsAwsjson11_deserializeDocumentConflictException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorInternalServerException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.InternalServerException{} + err := awsAwsjson11_deserializeDocumentInternalServerException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson11_deserializeErrorResourceNotFoundException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) err = &smithy.DeserializationError{ @@ -7362,109 +8472,303 @@ func awsAwsjson11_deserializeDocumentBatchCreateVariableError(v **types.BatchCre sv.Message = ptr.String(jtv) } - case "name": + case "name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentBatchCreateVariableErrorList(v *[]types.BatchCreateVariableError, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.BatchCreateVariableError + if *v == nil { + cv = []types.BatchCreateVariableError{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.BatchCreateVariableError + destAddr := &col + if err := awsAwsjson11_deserializeDocumentBatchCreateVariableError(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentBatchGetVariableError(v **types.BatchGetVariableError, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.BatchGetVariableError + if *v == nil { + sv = &types.BatchGetVariableError{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "code": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer2 to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Code = int32(i64) + } + + case "message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + case "name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentBatchGetVariableErrorList(v *[]types.BatchGetVariableError, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.BatchGetVariableError + if *v == nil { + cv = []types.BatchGetVariableError{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.BatchGetVariableError + destAddr := &col + if err := awsAwsjson11_deserializeDocumentBatchGetVariableError(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentBatchImport(v **types.BatchImport, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.BatchImport + if *v == nil { + sv = &types.BatchImport{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected fraudDetectorArn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "completionTime": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected time to be of type string, got %T instead", value) + } + sv.CompletionTime = ptr.String(jtv) + } + + case "eventTypeName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected identifier to be of type string, got %T instead", value) + } + sv.EventTypeName = ptr.String(jtv) + } + + case "failedRecordsCount": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.FailedRecordsCount = ptr.Int32(int32(i64)) + } + + case "failureReason": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + sv.FailureReason = ptr.String(jtv) + } + + case "iamRoleArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected iamRoleArn to be of type string, got %T instead", value) + } + sv.IamRoleArn = ptr.String(jtv) + } + + case "inputPath": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected s3BucketLocation to be of type string, got %T instead", value) + } + sv.InputPath = ptr.String(jtv) + } + + case "jobId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected identifier to be of type string, got %T instead", value) + } + sv.JobId = ptr.String(jtv) + } + + case "outputPath": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected string to be of type string, got %T instead", value) + return fmt.Errorf("expected s3BucketLocation to be of type string, got %T instead", value) } - sv.Name = ptr.String(jtv) + sv.OutputPath = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsAwsjson11_deserializeDocumentBatchCreateVariableErrorList(v *[]types.BatchCreateVariableError, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.BatchCreateVariableError - if *v == nil { - cv = []types.BatchCreateVariableError{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.BatchCreateVariableError - destAddr := &col - if err := awsAwsjson11_deserializeDocumentBatchCreateVariableError(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsAwsjson11_deserializeDocumentBatchGetVariableError(v **types.BatchGetVariableError, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.BatchGetVariableError - if *v == nil { - sv = &types.BatchGetVariableError{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "code": + case "processedRecordsCount": if value != nil { jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected Integer2 to be json.Number, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } i64, err := jtv.Int64() if err != nil { return err } - sv.Code = int32(i64) + sv.ProcessedRecordsCount = ptr.Int32(int32(i64)) } - case "message": + case "startTime": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected string to be of type string, got %T instead", value) + return fmt.Errorf("expected time to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.StartTime = ptr.String(jtv) } - case "name": + case "status": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected string to be of type string, got %T instead", value) + return fmt.Errorf("expected AsyncJobStatus to be of type string, got %T instead", value) } - sv.Name = ptr.String(jtv) + sv.Status = types.AsyncJobStatus(jtv) + } + + case "totalRecordsCount": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.TotalRecordsCount = ptr.Int32(int32(i64)) } default: @@ -7476,7 +8780,7 @@ func awsAwsjson11_deserializeDocumentBatchGetVariableError(v **types.BatchGetVar return nil } -func awsAwsjson11_deserializeDocumentBatchGetVariableErrorList(v *[]types.BatchGetVariableError, value interface{}) error { +func awsAwsjson11_deserializeDocumentBatchImportList(v *[]types.BatchImport, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -7489,17 +8793,17 @@ func awsAwsjson11_deserializeDocumentBatchGetVariableErrorList(v *[]types.BatchG return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.BatchGetVariableError + var cv []types.BatchImport if *v == nil { - cv = []types.BatchGetVariableError{} + cv = []types.BatchImport{} } else { cv = *v } for _, value := range shape { - var col types.BatchGetVariableError + var col types.BatchImport destAddr := &col - if err := awsAwsjson11_deserializeDocumentBatchGetVariableError(&destAddr, value); err != nil { + if err := awsAwsjson11_deserializeDocumentBatchImport(&destAddr, value); err != nil { return err } col = *destAddr @@ -7989,7 +9293,7 @@ func awsAwsjson11_deserializeDocumentDetectorVersionSummary(v **types.DetectorVe if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected nonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected wholeNumberVersionString to be of type string, got %T instead", value) } sv.DetectorVersionId = ptr.String(jtv) } @@ -8055,6 +9359,55 @@ func awsAwsjson11_deserializeDocumentDetectorVersionSummaryList(v *[]types.Detec return nil } +func awsAwsjson11_deserializeDocumentEntity(v **types.Entity, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.Entity + if *v == nil { + sv = &types.Entity{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "entityId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected entityRestrictedString to be of type string, got %T instead", value) + } + sv.EntityId = ptr.String(jtv) + } + + case "entityType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + sv.EntityType = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentEntityType(v **types.EntityType, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -8157,11 +9510,133 @@ func awsAwsjson11_deserializeDocumentEntityTypeList(v *[]types.EntityType, value if err := awsAwsjson11_deserializeDocumentEntityType(&destAddr, value); err != nil { return err } - col = *destAddr - cv = append(cv, col) + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentEvent(v **types.Event, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.Event + if *v == nil { + sv = &types.Event{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "currentLabel": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + sv.CurrentLabel = ptr.String(jtv) + } + + case "entities": + if err := awsAwsjson11_deserializeDocumentListOfEntities(&sv.Entities, value); err != nil { + return err + } + + case "eventId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + sv.EventId = ptr.String(jtv) + } + + case "eventTimestamp": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + sv.EventTimestamp = ptr.String(jtv) + } + + case "eventTypeName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + sv.EventTypeName = ptr.String(jtv) + } + + case "eventVariables": + if err := awsAwsjson11_deserializeDocumentEventAttributeMap(&sv.EventVariables, value); err != nil { + return err + } + + case "labelTimestamp": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + sv.LabelTimestamp = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentEventAttributeMap(v *map[string]string, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var mv map[string]string + if *v == nil { + mv = map[string]string{} + } else { + mv = *v + } + + for key, value := range shape { + var parsedVal string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected attributeValue to be of type string, got %T instead", value) + } + parsedVal = jtv + } + mv[key] = parsedVal } - *v = cv + *v = mv return nil } @@ -8219,11 +9694,25 @@ func awsAwsjson11_deserializeDocumentEventType(v **types.EventType, value interf return err } + case "eventIngestion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EventIngestion to be of type string, got %T instead", value) + } + sv.EventIngestion = types.EventIngestion(jtv) + } + case "eventVariables": if err := awsAwsjson11_deserializeDocumentListOfStrings(&sv.EventVariables, value); err != nil { return err } + case "ingestedEventStatistics": + if err := awsAwsjson11_deserializeDocumentIngestedEventStatistics(&sv.IngestedEventStatistics, value); err != nil { + return err + } + case "labels": if err := awsAwsjson11_deserializeDocumentListOfStrings(&sv.Labels, value); err != nil { return err @@ -8805,6 +10294,175 @@ func awsAwsjson11_deserializeDocumentFileValidationMessageList(v *[]types.FileVa return nil } +func awsAwsjson11_deserializeDocumentIngestedEventsDetail(v **types.IngestedEventsDetail, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.IngestedEventsDetail + if *v == nil { + sv = &types.IngestedEventsDetail{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ingestedEventsTimeWindow": + if err := awsAwsjson11_deserializeDocumentIngestedEventsTimeWindow(&sv.IngestedEventsTimeWindow, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentIngestedEventStatistics(v **types.IngestedEventStatistics, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.IngestedEventStatistics + if *v == nil { + sv = &types.IngestedEventStatistics{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "eventDataSizeInBytes": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Long to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.EventDataSizeInBytes = ptr.Int64(i64) + } + + case "lastUpdatedTime": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected time to be of type string, got %T instead", value) + } + sv.LastUpdatedTime = ptr.String(jtv) + } + + case "leastRecentEvent": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected time to be of type string, got %T instead", value) + } + sv.LeastRecentEvent = ptr.String(jtv) + } + + case "mostRecentEvent": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected time to be of type string, got %T instead", value) + } + sv.MostRecentEvent = ptr.String(jtv) + } + + case "numberOfEvents": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Long to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.NumberOfEvents = ptr.Int64(i64) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentIngestedEventsTimeWindow(v **types.IngestedEventsTimeWindow, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.IngestedEventsTimeWindow + if *v == nil { + sv = &types.IngestedEventsTimeWindow{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "endTime": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected time to be of type string, got %T instead", value) + } + sv.EndTime = ptr.String(jtv) + } + + case "startTime": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected time to be of type string, got %T instead", value) + } + sv.StartTime = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentInternalServerException(v **types.InternalServerException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -9092,6 +10750,15 @@ func awsAwsjson11_deserializeDocumentLabelSchema(v **types.LabelSchema, value in return err } + case "unlabeledEventsTreatment": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected UnlabeledEventsTreatment to be of type string, got %T instead", value) + } + sv.UnlabeledEventsTreatment = types.UnlabeledEventsTreatment(jtv) + } + default: _, _ = key, value @@ -9101,6 +10768,40 @@ func awsAwsjson11_deserializeDocumentLabelSchema(v **types.LabelSchema, value in return nil } +func awsAwsjson11_deserializeDocumentListOfEntities(v *[]types.Entity, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.Entity + if *v == nil { + cv = []types.Entity{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.Entity + destAddr := &col + if err := awsAwsjson11_deserializeDocumentEntity(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsAwsjson11_deserializeDocumentListOfExternalModelOutputs(v *[]types.ExternalModelOutputs, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -9711,7 +11412,7 @@ func awsAwsjson11_deserializeDocumentModelInputConfiguration(v **types.ModelInpu if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected string to be of type string, got %T instead", value) + return fmt.Errorf("expected modelInputTemplate to be of type string, got %T instead", value) } sv.CsvInputTemplate = ptr.String(jtv) } @@ -9738,7 +11439,7 @@ func awsAwsjson11_deserializeDocumentModelInputConfiguration(v **types.ModelInpu if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected string to be of type string, got %T instead", value) + return fmt.Errorf("expected modelInputTemplate to be of type string, got %T instead", value) } sv.JsonInputTemplate = ptr.String(jtv) } @@ -10000,7 +11701,7 @@ func awsAwsjson11_deserializeDocumentModelVersion(v **types.ModelVersion, value if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected nonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected floatVersionString to be of type string, got %T instead", value) } sv.ModelVersionNumber = ptr.String(jtv) } @@ -10059,6 +11760,11 @@ func awsAwsjson11_deserializeDocumentModelVersionDetail(v **types.ModelVersionDe return err } + case "ingestedEventsDetail": + if err := awsAwsjson11_deserializeDocumentIngestedEventsDetail(&sv.IngestedEventsDetail, value); err != nil { + return err + } + case "lastUpdatedTime": if value != nil { jtv, ok := value.(string) @@ -11259,7 +12965,69 @@ func awsAwsjson11_deserializeOpDocumentBatchGetVariableOutput(v **BatchGetVariab return nil } -func awsAwsjson11_deserializeOpDocumentCancelBatchPredictionJobOutput(v **CancelBatchPredictionJobOutput, value interface{}) error { +func awsAwsjson11_deserializeOpDocumentCancelBatchImportJobOutput(v **CancelBatchImportJobOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *CancelBatchImportJobOutput + if *v == nil { + sv = &CancelBatchImportJobOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeOpDocumentCancelBatchPredictionJobOutput(v **CancelBatchPredictionJobOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *CancelBatchPredictionJobOutput + if *v == nil { + sv = &CancelBatchPredictionJobOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeOpDocumentCreateBatchImportJobOutput(v **CreateBatchImportJobOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11272,9 +13040,9 @@ func awsAwsjson11_deserializeOpDocumentCancelBatchPredictionJobOutput(v **Cancel return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CancelBatchPredictionJobOutput + var sv *CreateBatchImportJobOutput if *v == nil { - sv = &CancelBatchPredictionJobOutput{} + sv = &CreateBatchImportJobOutput{} } else { sv = *v } @@ -11356,7 +13124,7 @@ func awsAwsjson11_deserializeOpDocumentCreateDetectorVersionOutput(v **CreateDet if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected nonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected wholeNumberVersionString to be of type string, got %T instead", value) } sv.DetectorVersionId = ptr.String(jtv) } @@ -11454,7 +13222,7 @@ func awsAwsjson11_deserializeOpDocumentCreateModelVersionOutput(v **CreateModelV if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected nonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected floatVersionString to be of type string, got %T instead", value) } sv.ModelVersionNumber = ptr.String(jtv) } @@ -11544,6 +13312,37 @@ func awsAwsjson11_deserializeOpDocumentCreateVariableOutput(v **CreateVariableOu return nil } +func awsAwsjson11_deserializeOpDocumentDeleteBatchImportJobOutput(v **DeleteBatchImportJobOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DeleteBatchImportJobOutput + if *v == nil { + sv = &DeleteBatchImportJobOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentDeleteBatchPredictionJobOutput(v **DeleteBatchPredictionJobOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -11699,6 +13498,55 @@ func awsAwsjson11_deserializeOpDocumentDeleteEventOutput(v **DeleteEventOutput, return nil } +func awsAwsjson11_deserializeOpDocumentDeleteEventsByEventTypeOutput(v **DeleteEventsByEventTypeOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DeleteEventsByEventTypeOutput + if *v == nil { + sv = &DeleteEventsByEventTypeOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "eventsDeletionStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + sv.EventsDeletionStatus = ptr.String(jtv) + } + + case "eventTypeName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected identifier to be of type string, got %T instead", value) + } + sv.EventTypeName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentDeleteEventTypeOutput(v **DeleteEventTypeOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -12055,6 +13903,51 @@ func awsAwsjson11_deserializeOpDocumentDescribeModelVersionsOutput(v **DescribeM return nil } +func awsAwsjson11_deserializeOpDocumentGetBatchImportJobsOutput(v **GetBatchImportJobsOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *GetBatchImportJobsOutput + if *v == nil { + sv = &GetBatchImportJobsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "batchImports": + if err := awsAwsjson11_deserializeDocumentBatchImportList(&sv.BatchImports, value); err != nil { + return err + } + + case "nextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected string to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentGetBatchPredictionJobsOutput(v **GetBatchPredictionJobsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -12100,6 +13993,55 @@ func awsAwsjson11_deserializeOpDocumentGetBatchPredictionJobsOutput(v **GetBatch return nil } +func awsAwsjson11_deserializeOpDocumentGetDeleteEventsByEventTypeStatusOutput(v **GetDeleteEventsByEventTypeStatusOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *GetDeleteEventsByEventTypeStatusOutput + if *v == nil { + sv = &GetDeleteEventsByEventTypeStatusOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "eventsDeletionStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AsyncJobStatus to be of type string, got %T instead", value) + } + sv.EventsDeletionStatus = types.AsyncJobStatus(jtv) + } + + case "eventTypeName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected identifier to be of type string, got %T instead", value) + } + sv.EventTypeName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentGetDetectorsOutput(v **GetDetectorsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -12308,6 +14250,42 @@ func awsAwsjson11_deserializeOpDocumentGetEntityTypesOutput(v **GetEntityTypesOu return nil } +func awsAwsjson11_deserializeOpDocumentGetEventOutput(v **GetEventOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *GetEventOutput + if *v == nil { + sv = &GetEventOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "event": + if err := awsAwsjson11_deserializeDocumentEvent(&sv.Event, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentGetEventPredictionOutput(v **GetEventPredictionOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -12606,6 +14584,11 @@ func awsAwsjson11_deserializeOpDocumentGetModelVersionOutput(v **GetModelVersion return err } + case "ingestedEventsDetail": + if err := awsAwsjson11_deserializeDocumentIngestedEventsDetail(&sv.IngestedEventsDetail, value); err != nil { + return err + } + case "modelId": if value != nil { jtv, ok := value.(string) @@ -13062,6 +15045,37 @@ func awsAwsjson11_deserializeOpDocumentPutOutcomeOutput(v **PutOutcomeOutput, va return nil } +func awsAwsjson11_deserializeOpDocumentSendEventOutput(v **SendEventOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *SendEventOutput + if *v == nil { + sv = &SendEventOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentTagResourceOutput(v **TagResourceOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -13217,6 +15231,37 @@ func awsAwsjson11_deserializeOpDocumentUpdateDetectorVersionStatusOutput(v **Upd return nil } +func awsAwsjson11_deserializeOpDocumentUpdateEventLabelOutput(v **UpdateEventLabelOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *UpdateEventLabelOutput + if *v == nil { + sv = &UpdateEventLabelOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentUpdateModelOutput(v **UpdateModelOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/frauddetector/generated.json b/service/frauddetector/generated.json index e4d8181b2fc..841bef24df5 100644 --- a/service/frauddetector/generated.json +++ b/service/frauddetector/generated.json @@ -7,19 +7,23 @@ "api_client.go", "api_op_BatchCreateVariable.go", "api_op_BatchGetVariable.go", + "api_op_CancelBatchImportJob.go", "api_op_CancelBatchPredictionJob.go", + "api_op_CreateBatchImportJob.go", "api_op_CreateBatchPredictionJob.go", "api_op_CreateDetectorVersion.go", "api_op_CreateModel.go", "api_op_CreateModelVersion.go", "api_op_CreateRule.go", "api_op_CreateVariable.go", + "api_op_DeleteBatchImportJob.go", "api_op_DeleteBatchPredictionJob.go", "api_op_DeleteDetector.go", "api_op_DeleteDetectorVersion.go", "api_op_DeleteEntityType.go", "api_op_DeleteEvent.go", "api_op_DeleteEventType.go", + "api_op_DeleteEventsByEventType.go", "api_op_DeleteExternalModel.go", "api_op_DeleteLabel.go", "api_op_DeleteModel.go", @@ -29,10 +33,13 @@ "api_op_DeleteVariable.go", "api_op_DescribeDetector.go", "api_op_DescribeModelVersions.go", + "api_op_GetBatchImportJobs.go", "api_op_GetBatchPredictionJobs.go", + "api_op_GetDeleteEventsByEventTypeStatus.go", "api_op_GetDetectorVersion.go", "api_op_GetDetectors.go", "api_op_GetEntityTypes.go", + "api_op_GetEvent.go", "api_op_GetEventPrediction.go", "api_op_GetEventTypes.go", "api_op_GetExternalModels.go", @@ -51,11 +58,13 @@ "api_op_PutKMSEncryptionKey.go", "api_op_PutLabel.go", "api_op_PutOutcome.go", + "api_op_SendEvent.go", "api_op_TagResource.go", "api_op_UntagResource.go", "api_op_UpdateDetectorVersion.go", "api_op_UpdateDetectorVersionMetadata.go", "api_op_UpdateDetectorVersionStatus.go", + "api_op_UpdateEventLabel.go", "api_op_UpdateModel.go", "api_op_UpdateModelVersion.go", "api_op_UpdateModelVersionStatus.go", diff --git a/service/frauddetector/serializers.go b/service/frauddetector/serializers.go index 2ce841d3263..ad190c7b604 100644 --- a/service/frauddetector/serializers.go +++ b/service/frauddetector/serializers.go @@ -109,6 +109,53 @@ func (m *awsAwsjson11_serializeOpBatchGetVariable) HandleSerialize(ctx context.C return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpCancelBatchImportJob struct { +} + +func (*awsAwsjson11_serializeOpCancelBatchImportJob) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpCancelBatchImportJob) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*CancelBatchImportJobInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSHawksNestServiceFacade.CancelBatchImportJob") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentCancelBatchImportJobInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + type awsAwsjson11_serializeOpCancelBatchPredictionJob struct { } @@ -156,6 +203,53 @@ func (m *awsAwsjson11_serializeOpCancelBatchPredictionJob) HandleSerialize(ctx c return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpCreateBatchImportJob struct { +} + +func (*awsAwsjson11_serializeOpCreateBatchImportJob) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpCreateBatchImportJob) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*CreateBatchImportJobInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSHawksNestServiceFacade.CreateBatchImportJob") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentCreateBatchImportJobInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + type awsAwsjson11_serializeOpCreateBatchPredictionJob struct { } @@ -438,6 +532,53 @@ func (m *awsAwsjson11_serializeOpCreateVariable) HandleSerialize(ctx context.Con return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpDeleteBatchImportJob struct { +} + +func (*awsAwsjson11_serializeOpDeleteBatchImportJob) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpDeleteBatchImportJob) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DeleteBatchImportJobInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSHawksNestServiceFacade.DeleteBatchImportJob") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentDeleteBatchImportJobInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + type awsAwsjson11_serializeOpDeleteBatchPredictionJob struct { } @@ -673,6 +814,53 @@ func (m *awsAwsjson11_serializeOpDeleteEvent) HandleSerialize(ctx context.Contex return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpDeleteEventsByEventType struct { +} + +func (*awsAwsjson11_serializeOpDeleteEventsByEventType) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpDeleteEventsByEventType) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DeleteEventsByEventTypeInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSHawksNestServiceFacade.DeleteEventsByEventType") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentDeleteEventsByEventTypeInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + type awsAwsjson11_serializeOpDeleteEventType struct { } @@ -1143,6 +1331,53 @@ func (m *awsAwsjson11_serializeOpDescribeModelVersions) HandleSerialize(ctx cont return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpGetBatchImportJobs struct { +} + +func (*awsAwsjson11_serializeOpGetBatchImportJobs) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpGetBatchImportJobs) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*GetBatchImportJobsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSHawksNestServiceFacade.GetBatchImportJobs") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentGetBatchImportJobsInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + type awsAwsjson11_serializeOpGetBatchPredictionJobs struct { } @@ -1190,6 +1425,53 @@ func (m *awsAwsjson11_serializeOpGetBatchPredictionJobs) HandleSerialize(ctx con return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpGetDeleteEventsByEventTypeStatus struct { +} + +func (*awsAwsjson11_serializeOpGetDeleteEventsByEventTypeStatus) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpGetDeleteEventsByEventTypeStatus) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*GetDeleteEventsByEventTypeStatusInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSHawksNestServiceFacade.GetDeleteEventsByEventTypeStatus") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentGetDeleteEventsByEventTypeStatusInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + type awsAwsjson11_serializeOpGetDetectors struct { } @@ -1331,6 +1613,53 @@ func (m *awsAwsjson11_serializeOpGetEntityTypes) HandleSerialize(ctx context.Con return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpGetEvent struct { +} + +func (*awsAwsjson11_serializeOpGetEvent) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpGetEvent) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*GetEventInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSHawksNestServiceFacade.GetEvent") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentGetEventInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + type awsAwsjson11_serializeOpGetEventPrediction struct { } @@ -2140,7 +2469,54 @@ func (m *awsAwsjson11_serializeOpPutOutcome) HandleSerialize(ctx context.Context return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*PutOutcomeInput) + input, ok := in.Parameters.(*PutOutcomeInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSHawksNestServiceFacade.PutOutcome") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentPutOutcomeInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson11_serializeOpSendEvent struct { +} + +func (*awsAwsjson11_serializeOpSendEvent) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpSendEvent) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*SendEventInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -2153,10 +2529,10 @@ func (m *awsAwsjson11_serializeOpPutOutcome) HandleSerialize(ctx context.Context return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSHawksNestServiceFacade.PutOutcome") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSHawksNestServiceFacade.SendEvent") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentPutOutcomeInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentSendEventInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -2407,6 +2783,53 @@ func (m *awsAwsjson11_serializeOpUpdateDetectorVersionStatus) HandleSerialize(ct return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpUpdateEventLabel struct { +} + +func (*awsAwsjson11_serializeOpUpdateEventLabel) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpUpdateEventLabel) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*UpdateEventLabelInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSHawksNestServiceFacade.UpdateEventLabel") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentUpdateEventLabelInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + type awsAwsjson11_serializeOpUpdateModel struct { } @@ -2758,6 +3181,37 @@ func awsAwsjson11_serializeDocumentExternalModelEndpointDataBlobMap(v map[string return nil } +func awsAwsjson11_serializeDocumentIngestedEventsDetail(v *types.IngestedEventsDetail, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.IngestedEventsTimeWindow != nil { + ok := object.Key("ingestedEventsTimeWindow") + if err := awsAwsjson11_serializeDocumentIngestedEventsTimeWindow(v.IngestedEventsTimeWindow, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson11_serializeDocumentIngestedEventsTimeWindow(v *types.IngestedEventsTimeWindow, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.EndTime != nil { + ok := object.Key("endTime") + ok.String(*v.EndTime) + } + + if v.StartTime != nil { + ok := object.Key("startTime") + ok.String(*v.StartTime) + } + + return nil +} + func awsAwsjson11_serializeDocumentJsonKeyToVariableMap(v map[string]string, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -2796,6 +3250,11 @@ func awsAwsjson11_serializeDocumentLabelSchema(v *types.LabelSchema, value smith } } + if len(v.UnlabeledEventsTreatment) > 0 { + ok := object.Key("unlabeledEventsTreatment") + ok.String(string(v.UnlabeledEventsTreatment)) + } + return nil } @@ -3142,6 +3601,18 @@ func awsAwsjson11_serializeOpDocumentBatchGetVariableInput(v *BatchGetVariableIn return nil } +func awsAwsjson11_serializeOpDocumentCancelBatchImportJobInput(v *CancelBatchImportJobInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.JobId != nil { + ok := object.Key("jobId") + ok.String(*v.JobId) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentCancelBatchPredictionJobInput(v *CancelBatchPredictionJobInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -3154,6 +3625,45 @@ func awsAwsjson11_serializeOpDocumentCancelBatchPredictionJobInput(v *CancelBatc return nil } +func awsAwsjson11_serializeOpDocumentCreateBatchImportJobInput(v *CreateBatchImportJobInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.EventTypeName != nil { + ok := object.Key("eventTypeName") + ok.String(*v.EventTypeName) + } + + if v.IamRoleArn != nil { + ok := object.Key("iamRoleArn") + ok.String(*v.IamRoleArn) + } + + if v.InputPath != nil { + ok := object.Key("inputPath") + ok.String(*v.InputPath) + } + + if v.JobId != nil { + ok := object.Key("jobId") + ok.String(*v.JobId) + } + + if v.OutputPath != nil { + ok := object.Key("outputPath") + ok.String(*v.OutputPath) + } + + if v.Tags != nil { + ok := object.Key("tags") + if err := awsAwsjson11_serializeDocumentTagList(v.Tags, ok); err != nil { + return err + } + } + + return nil +} + func awsAwsjson11_serializeOpDocumentCreateBatchPredictionJobInput(v *CreateBatchPredictionJobInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -3298,6 +3808,13 @@ func awsAwsjson11_serializeOpDocumentCreateModelVersionInput(v *CreateModelVersi } } + if v.IngestedEventsDetail != nil { + ok := object.Key("ingestedEventsDetail") + if err := awsAwsjson11_serializeDocumentIngestedEventsDetail(v.IngestedEventsDetail, ok); err != nil { + return err + } + } + if v.ModelId != nil { ok := object.Key("modelId") ok.String(*v.ModelId) @@ -3420,6 +3937,18 @@ func awsAwsjson11_serializeOpDocumentCreateVariableInput(v *CreateVariableInput, return nil } +func awsAwsjson11_serializeOpDocumentDeleteBatchImportJobInput(v *DeleteBatchImportJobInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.JobId != nil { + ok := object.Key("jobId") + ok.String(*v.JobId) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentDeleteBatchPredictionJobInput(v *DeleteBatchPredictionJobInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -3477,6 +4006,11 @@ func awsAwsjson11_serializeOpDocumentDeleteEventInput(v *DeleteEventInput, value object := value.Object() defer object.Close() + if v.DeleteAuditHistory != nil { + ok := object.Key("deleteAuditHistory") + ok.Boolean(*v.DeleteAuditHistory) + } + if v.EventId != nil { ok := object.Key("eventId") ok.String(*v.EventId) @@ -3490,6 +4024,18 @@ func awsAwsjson11_serializeOpDocumentDeleteEventInput(v *DeleteEventInput, value return nil } +func awsAwsjson11_serializeOpDocumentDeleteEventsByEventTypeInput(v *DeleteEventsByEventTypeInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.EventTypeName != nil { + ok := object.Key("eventTypeName") + ok.String(*v.EventTypeName) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentDeleteEventTypeInput(v *DeleteEventTypeInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -3657,6 +4203,28 @@ func awsAwsjson11_serializeOpDocumentDescribeModelVersionsInput(v *DescribeModel return nil } +func awsAwsjson11_serializeOpDocumentGetBatchImportJobsInput(v *GetBatchImportJobsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.JobId != nil { + ok := object.Key("jobId") + ok.String(*v.JobId) + } + + if v.MaxResults != nil { + ok := object.Key("maxResults") + ok.Integer(*v.MaxResults) + } + + if v.NextToken != nil { + ok := object.Key("nextToken") + ok.String(*v.NextToken) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentGetBatchPredictionJobsInput(v *GetBatchPredictionJobsInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -3679,6 +4247,18 @@ func awsAwsjson11_serializeOpDocumentGetBatchPredictionJobsInput(v *GetBatchPred return nil } +func awsAwsjson11_serializeOpDocumentGetDeleteEventsByEventTypeStatusInput(v *GetDeleteEventsByEventTypeStatusInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.EventTypeName != nil { + ok := object.Key("eventTypeName") + ok.String(*v.EventTypeName) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentGetDetectorsInput(v *GetDetectorsInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -3740,6 +4320,23 @@ func awsAwsjson11_serializeOpDocumentGetEntityTypesInput(v *GetEntityTypesInput, return nil } +func awsAwsjson11_serializeOpDocumentGetEventInput(v *GetEventInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.EventId != nil { + ok := object.Key("eventId") + ok.String(*v.EventId) + } + + if v.EventTypeName != nil { + ok := object.Key("eventTypeName") + ok.String(*v.EventTypeName) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentGetEventPredictionInput(v *GetEventPredictionInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -4075,6 +4672,11 @@ func awsAwsjson11_serializeOpDocumentPutEventTypeInput(v *PutEventTypeInput, val } } + if len(v.EventIngestion) > 0 { + ok := object.Key("eventIngestion") + ok.String(string(v.EventIngestion)) + } + if v.EventVariables != nil { ok := object.Key("eventVariables") if err := awsAwsjson11_serializeDocumentNonEmptyListOfStrings(v.EventVariables, ok); err != nil { @@ -4212,6 +4814,52 @@ func awsAwsjson11_serializeOpDocumentPutOutcomeInput(v *PutOutcomeInput, value s return nil } +func awsAwsjson11_serializeOpDocumentSendEventInput(v *SendEventInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AssignedLabel != nil { + ok := object.Key("assignedLabel") + ok.String(*v.AssignedLabel) + } + + if v.Entities != nil { + ok := object.Key("entities") + if err := awsAwsjson11_serializeDocumentListOfEntities(v.Entities, ok); err != nil { + return err + } + } + + if v.EventId != nil { + ok := object.Key("eventId") + ok.String(*v.EventId) + } + + if v.EventTimestamp != nil { + ok := object.Key("eventTimestamp") + ok.String(*v.EventTimestamp) + } + + if v.EventTypeName != nil { + ok := object.Key("eventTypeName") + ok.String(*v.EventTypeName) + } + + if v.EventVariables != nil { + ok := object.Key("eventVariables") + if err := awsAwsjson11_serializeDocumentEventVariableMap(v.EventVariables, ok); err != nil { + return err + } + } + + if v.LabelTimestamp != nil { + ok := object.Key("labelTimestamp") + ok.String(*v.LabelTimestamp) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentTagResourceInput(v *TagResourceInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -4342,6 +4990,33 @@ func awsAwsjson11_serializeOpDocumentUpdateDetectorVersionStatusInput(v *UpdateD return nil } +func awsAwsjson11_serializeOpDocumentUpdateEventLabelInput(v *UpdateEventLabelInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AssignedLabel != nil { + ok := object.Key("assignedLabel") + ok.String(*v.AssignedLabel) + } + + if v.EventId != nil { + ok := object.Key("eventId") + ok.String(*v.EventId) + } + + if v.EventTypeName != nil { + ok := object.Key("eventTypeName") + ok.String(*v.EventTypeName) + } + + if v.LabelTimestamp != nil { + ok := object.Key("labelTimestamp") + ok.String(*v.LabelTimestamp) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentUpdateModelInput(v *UpdateModelInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -4375,6 +5050,13 @@ func awsAwsjson11_serializeOpDocumentUpdateModelVersionInput(v *UpdateModelVersi } } + if v.IngestedEventsDetail != nil { + ok := object.Key("ingestedEventsDetail") + if err := awsAwsjson11_serializeDocumentIngestedEventsDetail(v.IngestedEventsDetail, ok); err != nil { + return err + } + } + if v.MajorVersionNumber != nil { ok := object.Key("majorVersionNumber") ok.String(*v.MajorVersionNumber) diff --git a/service/frauddetector/types/enums.go b/service/frauddetector/types/enums.go index 695bb077222..8f36d01b9df 100644 --- a/service/frauddetector/types/enums.go +++ b/service/frauddetector/types/enums.go @@ -90,6 +90,24 @@ func (DetectorVersionStatus) Values() []DetectorVersionStatus { } } +type EventIngestion string + +// Enum values for EventIngestion +const ( + EventIngestionEnabled EventIngestion = "ENABLED" + EventIngestionDisabled EventIngestion = "DISABLED" +) + +// Values returns all known values for EventIngestion. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (EventIngestion) Values() []EventIngestion { + return []EventIngestion{ + "ENABLED", + "DISABLED", + } +} + type Language string // Enum values for Language @@ -180,7 +198,8 @@ type ModelTypeEnum string // Enum values for ModelTypeEnum const ( - ModelTypeEnumOnlineFraudInsights ModelTypeEnum = "ONLINE_FRAUD_INSIGHTS" + ModelTypeEnumOnlineFraudInsights ModelTypeEnum = "ONLINE_FRAUD_INSIGHTS" + ModelTypeEnumTransactionFraudInsights ModelTypeEnum = "TRANSACTION_FRAUD_INSIGHTS" ) // Values returns all known values for ModelTypeEnum. Note that this can be @@ -189,6 +208,7 @@ const ( func (ModelTypeEnum) Values() []ModelTypeEnum { return []ModelTypeEnum{ "ONLINE_FRAUD_INSIGHTS", + "TRANSACTION_FRAUD_INSIGHTS", } } @@ -235,6 +255,7 @@ type TrainingDataSourceEnum string // Enum values for TrainingDataSourceEnum const ( TrainingDataSourceEnumExternalEvents TrainingDataSourceEnum = "EXTERNAL_EVENTS" + TrainingDataSourceEnumIngestedEvents TrainingDataSourceEnum = "INGESTED_EVENTS" ) // Values returns all known values for TrainingDataSourceEnum. Note that this can @@ -243,5 +264,26 @@ const ( func (TrainingDataSourceEnum) Values() []TrainingDataSourceEnum { return []TrainingDataSourceEnum{ "EXTERNAL_EVENTS", + "INGESTED_EVENTS", + } +} + +type UnlabeledEventsTreatment string + +// Enum values for UnlabeledEventsTreatment +const ( + UnlabeledEventsTreatmentIgnore UnlabeledEventsTreatment = "IGNORE" + UnlabeledEventsTreatmentFraud UnlabeledEventsTreatment = "FRAUD" + UnlabeledEventsTreatmentLegit UnlabeledEventsTreatment = "LEGIT" +) + +// Values returns all known values for UnlabeledEventsTreatment. Note that this can +// be expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (UnlabeledEventsTreatment) Values() []UnlabeledEventsTreatment { + return []UnlabeledEventsTreatment{ + "IGNORE", + "FRAUD", + "LEGIT", } } diff --git a/service/frauddetector/types/errors.go b/service/frauddetector/types/errors.go index 3df6bef95cd..8edca992f0a 100644 --- a/service/frauddetector/types/errors.go +++ b/service/frauddetector/types/errors.go @@ -28,20 +28,7 @@ func (e *AccessDeniedException) ErrorMessage() string { func (e *AccessDeniedException) ErrorCode() string { return "AccessDeniedException" } func (e *AccessDeniedException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// An exception indicating there was a conflict during a delete operation. The -// following delete operations can cause a conflict exception: -// -// * DeleteDetector: A -// conflict exception will occur if the detector has associated Rules or -// DetectorVersions. You can only delete a detector if it has no Rules or -// DetectorVersions. -// -// * DeleteDetectorVersion: A conflict exception will occur if -// the DetectorVersion status is ACTIVE. -// -// * DeleteRule: A conflict exception will -// occur if the RuleVersion is in use by an associated ACTIVE or INACTIVE -// DetectorVersion. +// An exception indicating there was a conflict during a delete operation. type ConflictException struct { Message *string @@ -79,9 +66,7 @@ func (e *InternalServerException) ErrorMessage() string { func (e *InternalServerException) ErrorCode() string { return "InternalServerException" } func (e *InternalServerException) ErrorFault() smithy.ErrorFault { return smithy.FaultServer } -// An exception indicating the specified resource was not found. This can occur if -// you submit a request, such as CreateBatchPredictionJob, but the detector name or -// version does not exist. +// An exception indicating the specified resource was not found. type ResourceNotFoundException struct { Message *string diff --git a/service/frauddetector/types/types.go b/service/frauddetector/types/types.go index df6844b8413..77da32eed73 100644 --- a/service/frauddetector/types/types.go +++ b/service/frauddetector/types/types.go @@ -36,13 +36,58 @@ type BatchGetVariableError struct { noSmithyDocumentSerde } +// The batch import job details. +type BatchImport struct { + + // The ARN of the batch import job. + Arn *string + + // Timestamp of when batch import job completed. + CompletionTime *string + + // The name of the event type. + EventTypeName *string + + // The number of records that failed to import. + FailedRecordsCount *int32 + + // The reason batch import job failed. + FailureReason *string + + // The ARN of the IAM role to use for this job request. + IamRoleArn *string + + // The Amazon S3 location of your data file for batch import. + InputPath *string + + // The ID of the batch import job. + JobId *string + + // The Amazon S3 location of your output file. + OutputPath *string + + // The number of records processed by batch import job. + ProcessedRecordsCount *int32 + + // Timestamp of when the batch import job started. + StartTime *string + + // The status of the batch import job. + Status AsyncJobStatus + + // The total number of records in the batch import job. + TotalRecordsCount *int32 + + noSmithyDocumentSerde +} + // The batch prediction details. type BatchPrediction struct { // The ARN of batch prediction job. Arn *string - // Timestamp of when the batch prediction job comleted. + // Timestamp of when the batch prediction job completed. CompletionTime *string // The name of the detector. @@ -180,6 +225,37 @@ type EntityType struct { noSmithyDocumentSerde } +// The event details. +type Event struct { + + // The label associated with the event. + CurrentLabel *string + + // The event entities. + Entities []Entity + + // The event ID. + EventId *string + + // The timestamp that defines when the event under evaluation occurred. The + // timestamp must be specified using ISO 8601 standard in UTC. + EventTimestamp *string + + // The event type. + EventTypeName *string + + // Names of the event type's variables you defined in Amazon Fraud Detector to + // represent data elements and their corresponding values for the event you are + // sending for evaluation. + EventVariables map[string]string + + // The timestamp associated with the label to update. The timestamp must be + // specified using ISO 8601 standard in UTC. + LabelTimestamp *string + + noSmithyDocumentSerde +} + // The event type details. type EventType struct { @@ -195,9 +271,18 @@ type EventType struct { // The event type entity types. EntityTypes []string + // If Enabled, Amazon Fraud Detector stores event data when you generate a + // prediction and uses that data to update calculated variables in near real-time. + // Amazon Fraud Detector uses this data, known as INGESTED_EVENTS, to train your + // model and improve fraud predictions. + EventIngestion EventIngestion + // The event type event variables. EventVariables []string + // Data about the stored events. + IngestedEventStatistics *IngestedEventStatistics + // The event type labels. Labels []string @@ -320,6 +405,54 @@ type FileValidationMessage struct { noSmithyDocumentSerde } +// The details of the ingested event. +type IngestedEventsDetail struct { + + // The start and stop time of the ingested events. + // + // This member is required. + IngestedEventsTimeWindow *IngestedEventsTimeWindow + + noSmithyDocumentSerde +} + +// Data about the stored events. +type IngestedEventStatistics struct { + + // The total size of the stored events. + EventDataSizeInBytes *int64 + + // Timestamp of when the stored event was last updated. + LastUpdatedTime *string + + // The oldest stored event. + LeastRecentEvent *string + + // The newest stored event. + MostRecentEvent *string + + // The number of stored events. + NumberOfEvents *int64 + + noSmithyDocumentSerde +} + +// The start and stop time of the ingested events. +type IngestedEventsTimeWindow struct { + + // Timestamp of the final ingested event. + // + // This member is required. + EndTime *string + + // Timestamp of the first ingensted event. + // + // This member is required. + StartTime *string + + noSmithyDocumentSerde +} + // The KMS key details. type KMSKey struct { @@ -364,6 +497,9 @@ type LabelSchema struct { // This member is required. LabelMapper map[string][]string + // The action to take for unlabeled events. + UnlabeledEventsTreatment UnlabeledEventsTreatment + noSmithyDocumentSerde } @@ -546,9 +682,14 @@ type ModelVersionDetail struct { // The timestamp when the model was created. CreatedTime *string - // The event details. + // The external events data details. This will be populated if the + // trainingDataSource for the model version is specified as EXTERNAL_EVENTS. ExternalEventsDetail *ExternalEventsDetail + // The ingested events data details. This will be populated if the + // trainingDataSource for the model version is specified as INGESTED_EVENTS. + IngestedEventsDetail *IngestedEventsDetail + // The timestamp when the model was last updated. LastUpdatedTime *string diff --git a/service/frauddetector/validators.go b/service/frauddetector/validators.go index 5d00a300d9f..4450405f3d9 100644 --- a/service/frauddetector/validators.go +++ b/service/frauddetector/validators.go @@ -50,6 +50,26 @@ func (m *validateOpBatchGetVariable) HandleInitialize(ctx context.Context, in mi return next.HandleInitialize(ctx, in) } +type validateOpCancelBatchImportJob struct { +} + +func (*validateOpCancelBatchImportJob) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCancelBatchImportJob) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CancelBatchImportJobInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCancelBatchImportJobInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpCancelBatchPredictionJob struct { } @@ -70,6 +90,26 @@ func (m *validateOpCancelBatchPredictionJob) HandleInitialize(ctx context.Contex return next.HandleInitialize(ctx, in) } +type validateOpCreateBatchImportJob struct { +} + +func (*validateOpCreateBatchImportJob) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateBatchImportJob) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateBatchImportJobInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateBatchImportJobInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpCreateBatchPredictionJob struct { } @@ -190,6 +230,26 @@ func (m *validateOpCreateVariable) HandleInitialize(ctx context.Context, in midd return next.HandleInitialize(ctx, in) } +type validateOpDeleteBatchImportJob struct { +} + +func (*validateOpDeleteBatchImportJob) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteBatchImportJob) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteBatchImportJobInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteBatchImportJobInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeleteBatchPredictionJob struct { } @@ -290,6 +350,26 @@ func (m *validateOpDeleteEvent) HandleInitialize(ctx context.Context, in middlew return next.HandleInitialize(ctx, in) } +type validateOpDeleteEventsByEventType struct { +} + +func (*validateOpDeleteEventsByEventType) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteEventsByEventType) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteEventsByEventTypeInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteEventsByEventTypeInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeleteEventType struct { } @@ -470,6 +550,26 @@ func (m *validateOpDescribeDetector) HandleInitialize(ctx context.Context, in mi return next.HandleInitialize(ctx, in) } +type validateOpGetDeleteEventsByEventTypeStatus struct { +} + +func (*validateOpGetDeleteEventsByEventTypeStatus) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetDeleteEventsByEventTypeStatus) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetDeleteEventsByEventTypeStatusInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetDeleteEventsByEventTypeStatusInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpGetDetectorVersion struct { } @@ -490,6 +590,26 @@ func (m *validateOpGetDetectorVersion) HandleInitialize(ctx context.Context, in return next.HandleInitialize(ctx, in) } +type validateOpGetEvent struct { +} + +func (*validateOpGetEvent) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetEvent) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetEventInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetEventInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpGetEventPrediction struct { } @@ -710,6 +830,26 @@ func (m *validateOpPutOutcome) HandleInitialize(ctx context.Context, in middlewa return next.HandleInitialize(ctx, in) } +type validateOpSendEvent struct { +} + +func (*validateOpSendEvent) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpSendEvent) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*SendEventInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpSendEventInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpTagResource struct { } @@ -810,6 +950,26 @@ func (m *validateOpUpdateDetectorVersionStatus) HandleInitialize(ctx context.Con return next.HandleInitialize(ctx, in) } +type validateOpUpdateEventLabel struct { +} + +func (*validateOpUpdateEventLabel) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateEventLabel) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateEventLabelInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateEventLabelInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpUpdateModel struct { } @@ -938,10 +1098,18 @@ func addOpBatchGetVariableValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpBatchGetVariable{}, middleware.After) } +func addOpCancelBatchImportJobValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCancelBatchImportJob{}, middleware.After) +} + func addOpCancelBatchPredictionJobValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCancelBatchPredictionJob{}, middleware.After) } +func addOpCreateBatchImportJobValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateBatchImportJob{}, middleware.After) +} + func addOpCreateBatchPredictionJobValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateBatchPredictionJob{}, middleware.After) } @@ -966,6 +1134,10 @@ func addOpCreateVariableValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateVariable{}, middleware.After) } +func addOpDeleteBatchImportJobValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteBatchImportJob{}, middleware.After) +} + func addOpDeleteBatchPredictionJobValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteBatchPredictionJob{}, middleware.After) } @@ -986,6 +1158,10 @@ func addOpDeleteEventValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteEvent{}, middleware.After) } +func addOpDeleteEventsByEventTypeValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteEventsByEventType{}, middleware.After) +} + func addOpDeleteEventTypeValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteEventType{}, middleware.After) } @@ -1022,10 +1198,18 @@ func addOpDescribeDetectorValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeDetector{}, middleware.After) } +func addOpGetDeleteEventsByEventTypeStatusValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetDeleteEventsByEventTypeStatus{}, middleware.After) +} + func addOpGetDetectorVersionValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetDetectorVersion{}, middleware.After) } +func addOpGetEventValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetEvent{}, middleware.After) +} + func addOpGetEventPredictionValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetEventPrediction{}, middleware.After) } @@ -1070,6 +1254,10 @@ func addOpPutOutcomeValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpPutOutcome{}, middleware.After) } +func addOpSendEventValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpSendEvent{}, middleware.After) +} + func addOpTagResourceValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpTagResource{}, middleware.After) } @@ -1090,6 +1278,10 @@ func addOpUpdateDetectorVersionStatusValidationMiddleware(stack *middleware.Stac return stack.Initialize.Add(&validateOpUpdateDetectorVersionStatus{}, middleware.After) } +func addOpUpdateEventLabelValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateEventLabel{}, middleware.After) +} + func addOpUpdateModelValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateModel{}, middleware.After) } @@ -1150,6 +1342,43 @@ func validateExternalEventsDetail(v *types.ExternalEventsDetail) error { } } +func validateIngestedEventsDetail(v *types.IngestedEventsDetail) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "IngestedEventsDetail"} + if v.IngestedEventsTimeWindow == nil { + invalidParams.Add(smithy.NewErrParamRequired("IngestedEventsTimeWindow")) + } else if v.IngestedEventsTimeWindow != nil { + if err := validateIngestedEventsTimeWindow(v.IngestedEventsTimeWindow); err != nil { + invalidParams.AddNested("IngestedEventsTimeWindow", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateIngestedEventsTimeWindow(v *types.IngestedEventsTimeWindow) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "IngestedEventsTimeWindow"} + if v.StartTime == nil { + invalidParams.Add(smithy.NewErrParamRequired("StartTime")) + } + if v.EndTime == nil { + invalidParams.Add(smithy.NewErrParamRequired("EndTime")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateLabelSchema(v *types.LabelSchema) error { if v == nil { return nil @@ -1380,6 +1609,21 @@ func validateOpBatchGetVariableInput(v *BatchGetVariableInput) error { } } +func validateOpCancelBatchImportJobInput(v *CancelBatchImportJobInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CancelBatchImportJobInput"} + if v.JobId == nil { + invalidParams.Add(smithy.NewErrParamRequired("JobId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpCancelBatchPredictionJobInput(v *CancelBatchPredictionJobInput) error { if v == nil { return nil @@ -1395,6 +1639,38 @@ func validateOpCancelBatchPredictionJobInput(v *CancelBatchPredictionJobInput) e } } +func validateOpCreateBatchImportJobInput(v *CreateBatchImportJobInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateBatchImportJobInput"} + if v.JobId == nil { + invalidParams.Add(smithy.NewErrParamRequired("JobId")) + } + if v.InputPath == nil { + invalidParams.Add(smithy.NewErrParamRequired("InputPath")) + } + if v.OutputPath == nil { + invalidParams.Add(smithy.NewErrParamRequired("OutputPath")) + } + if v.EventTypeName == nil { + invalidParams.Add(smithy.NewErrParamRequired("EventTypeName")) + } + if v.IamRoleArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("IamRoleArn")) + } + if v.Tags != nil { + if err := validateTagList(v.Tags); err != nil { + invalidParams.AddNested("Tags", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpCreateBatchPredictionJobInput(v *CreateBatchPredictionJobInput) error { if v == nil { return nil @@ -1514,6 +1790,11 @@ func validateOpCreateModelVersionInput(v *CreateModelVersionInput) error { invalidParams.AddNested("ExternalEventsDetail", err.(smithy.InvalidParamsError)) } } + if v.IngestedEventsDetail != nil { + if err := validateIngestedEventsDetail(v.IngestedEventsDetail); err != nil { + invalidParams.AddNested("IngestedEventsDetail", err.(smithy.InvalidParamsError)) + } + } if v.Tags != nil { if err := validateTagList(v.Tags); err != nil { invalidParams.AddNested("Tags", err.(smithy.InvalidParamsError)) @@ -1587,6 +1868,21 @@ func validateOpCreateVariableInput(v *CreateVariableInput) error { } } +func validateOpDeleteBatchImportJobInput(v *DeleteBatchImportJobInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteBatchImportJobInput"} + if v.JobId == nil { + invalidParams.Add(smithy.NewErrParamRequired("JobId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDeleteBatchPredictionJobInput(v *DeleteBatchPredictionJobInput) error { if v == nil { return nil @@ -1668,6 +1964,21 @@ func validateOpDeleteEventInput(v *DeleteEventInput) error { } } +func validateOpDeleteEventsByEventTypeInput(v *DeleteEventsByEventTypeInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteEventsByEventTypeInput"} + if v.EventTypeName == nil { + invalidParams.Add(smithy.NewErrParamRequired("EventTypeName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDeleteEventTypeInput(v *DeleteEventTypeInput) error { if v == nil { return nil @@ -1816,6 +2127,21 @@ func validateOpDescribeDetectorInput(v *DescribeDetectorInput) error { } } +func validateOpGetDeleteEventsByEventTypeStatusInput(v *GetDeleteEventsByEventTypeStatusInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GetDeleteEventsByEventTypeStatusInput"} + if v.EventTypeName == nil { + invalidParams.Add(smithy.NewErrParamRequired("EventTypeName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpGetDetectorVersionInput(v *GetDetectorVersionInput) error { if v == nil { return nil @@ -1834,6 +2160,24 @@ func validateOpGetDetectorVersionInput(v *GetDetectorVersionInput) error { } } +func validateOpGetEventInput(v *GetEventInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GetEventInput"} + if v.EventId == nil { + invalidParams.Add(smithy.NewErrParamRequired("EventId")) + } + if v.EventTypeName == nil { + invalidParams.Add(smithy.NewErrParamRequired("EventTypeName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpGetEventPredictionInput(v *GetEventPredictionInput) error { if v == nil { return nil @@ -2086,6 +2430,37 @@ func validateOpPutOutcomeInput(v *PutOutcomeInput) error { } } +func validateOpSendEventInput(v *SendEventInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "SendEventInput"} + if v.EventId == nil { + invalidParams.Add(smithy.NewErrParamRequired("EventId")) + } + if v.EventTypeName == nil { + invalidParams.Add(smithy.NewErrParamRequired("EventTypeName")) + } + if v.EventTimestamp == nil { + invalidParams.Add(smithy.NewErrParamRequired("EventTimestamp")) + } + if v.EventVariables == nil { + invalidParams.Add(smithy.NewErrParamRequired("EventVariables")) + } + if v.Entities == nil { + invalidParams.Add(smithy.NewErrParamRequired("Entities")) + } else if v.Entities != nil { + if err := validateListOfEntities(v.Entities); err != nil { + invalidParams.AddNested("Entities", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpTagResourceInput(v *TagResourceInput) error { if v == nil { return nil @@ -2201,6 +2576,30 @@ func validateOpUpdateDetectorVersionStatusInput(v *UpdateDetectorVersionStatusIn } } +func validateOpUpdateEventLabelInput(v *UpdateEventLabelInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateEventLabelInput"} + if v.EventId == nil { + invalidParams.Add(smithy.NewErrParamRequired("EventId")) + } + if v.EventTypeName == nil { + invalidParams.Add(smithy.NewErrParamRequired("EventTypeName")) + } + if v.AssignedLabel == nil { + invalidParams.Add(smithy.NewErrParamRequired("AssignedLabel")) + } + if v.LabelTimestamp == nil { + invalidParams.Add(smithy.NewErrParamRequired("LabelTimestamp")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpUpdateModelInput(v *UpdateModelInput) error { if v == nil { return nil @@ -2238,6 +2637,11 @@ func validateOpUpdateModelVersionInput(v *UpdateModelVersionInput) error { invalidParams.AddNested("ExternalEventsDetail", err.(smithy.InvalidParamsError)) } } + if v.IngestedEventsDetail != nil { + if err := validateIngestedEventsDetail(v.IngestedEventsDetail); err != nil { + invalidParams.AddNested("IngestedEventsDetail", err.(smithy.InvalidParamsError)) + } + } if v.Tags != nil { if err := validateTagList(v.Tags); err != nil { invalidParams.AddNested("Tags", err.(smithy.InvalidParamsError)) diff --git a/service/fsx/api_op_CreateFileSystem.go b/service/fsx/api_op_CreateFileSystem.go index 518b7d32dae..b297fae1d00 100644 --- a/service/fsx/api_op_CreateFileSystem.go +++ b/service/fsx/api_op_CreateFileSystem.go @@ -114,6 +114,18 @@ type CreateFileSystemInput struct { // Command Line Interface (CLI) or an Amazon Web Services SDK. ClientRequestToken *string + // Sets the version of the Amazon FSx for Lustre file system you're creating. Valid + // values are 2.10 and 2.12. + // + // * Set the value to 2.10 to create a Lustre 2.10 file + // system. + // + // * Set the value to 2.12 to create a Lustre 2.12 file system. + // + // Default + // value is 2.10. + FileSystemTypeVersion *string + // The ID of the Key Management Service (KMS) key used to encrypt the file system's // data for Amazon FSx for Windows File Server file systems, Amazon FSx for NetApp // ONTAP file systems, and Amazon FSx for Lustre PERSISTENT_1 file systems at rest. diff --git a/service/fsx/api_op_CreateFileSystemFromBackup.go b/service/fsx/api_op_CreateFileSystemFromBackup.go index 2fa6e82a553..22dda13b5c5 100644 --- a/service/fsx/api_op_CreateFileSystemFromBackup.go +++ b/service/fsx/api_op_CreateFileSystemFromBackup.go @@ -79,6 +79,14 @@ type CreateFileSystemFromBackupInput struct { // Command Line Interface (CLI) or an Amazon Web Services SDK. ClientRequestToken *string + // Sets the version for the Amazon FSx for Lustre file system you're creating from + // a backup. Valid values are 2.10 and 2.12. You don't need to specify + // FileSystemTypeVersion because it will be applied using the backup's + // FileSystemTypeVersion setting. If you choose to specify FileSystemTypeVersion + // when creating from backup, the value must match the backup's + // FileSystemTypeVersion setting. + FileSystemTypeVersion *string + // The ID of the Key Management Service (KMS) key used to encrypt the file system's // data for Amazon FSx for Windows File Server file systems, Amazon FSx for NetApp // ONTAP file systems, and Amazon FSx for Lustre PERSISTENT_1 file systems at rest. diff --git a/service/fsx/deserializers.go b/service/fsx/deserializers.go index 5bdc4fa8bb9..fc5d64d7fc0 100644 --- a/service/fsx/deserializers.go +++ b/service/fsx/deserializers.go @@ -6221,6 +6221,15 @@ func awsAwsjson11_deserializeDocumentFileSystem(v **types.FileSystem, value inte sv.FileSystemType = types.FileSystemType(jtv) } + case "FileSystemTypeVersion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FileSystemTypeVersion to be of type string, got %T instead", value) + } + sv.FileSystemTypeVersion = ptr.String(jtv) + } + case "KmsKeyId": if value != nil { jtv, ok := value.(string) diff --git a/service/fsx/serializers.go b/service/fsx/serializers.go index 80012472859..406ae3da609 100644 --- a/service/fsx/serializers.go +++ b/service/fsx/serializers.go @@ -2382,6 +2382,11 @@ func awsAwsjson11_serializeOpDocumentCreateFileSystemFromBackupInput(v *CreateFi ok.String(*v.ClientRequestToken) } + if v.FileSystemTypeVersion != nil { + ok := object.Key("FileSystemTypeVersion") + ok.String(*v.FileSystemTypeVersion) + } + if v.KmsKeyId != nil { ok := object.Key("KmsKeyId") ok.String(*v.KmsKeyId) @@ -2444,6 +2449,11 @@ func awsAwsjson11_serializeOpDocumentCreateFileSystemInput(v *CreateFileSystemIn ok.String(string(v.FileSystemType)) } + if v.FileSystemTypeVersion != nil { + ok := object.Key("FileSystemTypeVersion") + ok.String(*v.FileSystemTypeVersion) + } + if v.KmsKeyId != nil { ok := object.Key("KmsKeyId") ok.String(*v.KmsKeyId) diff --git a/service/fsx/types/types.go b/service/fsx/types/types.go index 8dcbeea4077..27cb17f36b1 100644 --- a/service/fsx/types/types.go +++ b/service/fsx/types/types.go @@ -606,8 +606,8 @@ type CreateFileSystemWindowsConfiguration struct { // transfer costs and minimize latency. PreferredSubnetId *string - // The configuration that Amazon FSx uses to join a Amazon FSx for Windows File - // Server file system or an ONTAP storage virtual machine (SVM) to a self-managed + // The configuration that Amazon FSx uses to join a FSx for Windows File Server + // file system or an ONTAP storage virtual machine (SVM) to a self-managed // (including on-premises) Microsoft Active Directory (AD) directory. For more // information, see Using Amazon FSx with your self-managed Microsoft Active // Directory @@ -685,8 +685,8 @@ type CreateSvmActiveDirectoryConfiguration struct { // This member is required. NetBiosName *string - // The configuration that Amazon FSx uses to join a Amazon FSx for Windows File - // Server file system or an ONTAP storage virtual machine (SVM) to a self-managed + // The configuration that Amazon FSx uses to join a FSx for Windows File Server + // file system or an ONTAP storage virtual machine (SVM) to a self-managed // (including on-premises) Microsoft Active Directory (AD) directory. For more // information, see Using Amazon FSx with your self-managed Microsoft Active // Directory @@ -1069,6 +1069,9 @@ type FileSystem struct { // The type of Amazon FSx file system, which can be LUSTRE, WINDOWS, or ONTAP. FileSystemType FileSystemType + // The version of your Amazon FSx for Lustre file system, either 2.10 or 2.12. + FileSystemTypeVersion *string + // The ID of the Key Management Service (KMS) key used to encrypt the file system's // data for Amazon FSx for Windows File Server file systems, Amazon FSx for NetApp // ONTAP file systems, and persistent Amazon FSx for Lustre file systems at rest. @@ -1426,7 +1429,7 @@ type OntapVolumeConfiguration struct { // is joined. type SelfManagedActiveDirectoryAttributes struct { - // A list of up to two IP addresses of DNS servers or domain controllers in the + // A list of up to three IP addresses of DNS servers or domain controllers in the // self-managed AD directory. DnsIps []string @@ -1449,8 +1452,8 @@ type SelfManagedActiveDirectoryAttributes struct { noSmithyDocumentSerde } -// The configuration that Amazon FSx uses to join a Amazon FSx for Windows File -// Server file system or an ONTAP storage virtual machine (SVM) to a self-managed +// The configuration that Amazon FSx uses to join a FSx for Windows File Server +// file system or an ONTAP storage virtual machine (SVM) to a self-managed // (including on-premises) Microsoft Active Directory (AD) directory. For more // information, see Using Amazon FSx with your self-managed Microsoft Active // Directory @@ -1459,7 +1462,7 @@ type SelfManagedActiveDirectoryAttributes struct { // (https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-svms.html). type SelfManagedActiveDirectoryConfiguration struct { - // A list of up to two IP addresses of DNS servers or domain controllers in the + // A list of up to three IP addresses of DNS servers or domain controllers in the // self-managed AD directory. // // This member is required. @@ -1510,7 +1513,7 @@ type SelfManagedActiveDirectoryConfiguration struct { // to a self-managed Microsoft Active Directory (AD) directory. type SelfManagedActiveDirectoryConfigurationUpdates struct { - // A list of up to two IP addresses of DNS servers or domain controllers in the + // A list of up to three IP addresses of DNS servers or domain controllers in the // self-managed AD directory. DnsIps []string diff --git a/service/glue/api_op_CreateConnection.go b/service/glue/api_op_CreateConnection.go index 0627b377b6e..42e53ac199d 100644 --- a/service/glue/api_op_CreateConnection.go +++ b/service/glue/api_op_CreateConnection.go @@ -38,6 +38,9 @@ type CreateConnectionInput struct { // provided, the Amazon Web Services account ID is used by default. CatalogId *string + // The tags you assign to the connection. + Tags map[string]string + noSmithyDocumentSerde } diff --git a/service/glue/api_op_GetPartitions.go b/service/glue/api_op_GetPartitions.go index 0be84f99700..8c19a341a39 100644 --- a/service/glue/api_op_GetPartitions.go +++ b/service/glue/api_op_GetPartitions.go @@ -44,6 +44,10 @@ type GetPartitionsInput struct { // provided, the Amazon Web Services account ID is used by default. CatalogId *string + // When true, specifies not returning the partition column schema. Useful when you + // are interested only in other partition attributes such as partition values or + // location. This approach avoids the problem of a large response by not returning + // duplicate data. ExcludeColumnSchema *bool // An expression that filters the partitions to be returned. The expression uses diff --git a/service/glue/serializers.go b/service/glue/serializers.go index 27476385bf1..2ed5c4b5cf2 100644 --- a/service/glue/serializers.go +++ b/service/glue/serializers.go @@ -11434,6 +11434,13 @@ func awsAwsjson11_serializeOpDocumentCreateConnectionInput(v *CreateConnectionIn } } + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsAwsjson11_serializeDocumentTagsMap(v.Tags, ok); err != nil { + return err + } + } + return nil } diff --git a/service/grafana/LICENSE.txt b/service/grafana/LICENSE.txt new file mode 100644 index 00000000000..d6456956733 --- /dev/null +++ b/service/grafana/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/service/grafana/api_client.go b/service/grafana/api_client.go new file mode 100644 index 00000000000..2e017df2ba0 --- /dev/null +++ b/service/grafana/api_client.go @@ -0,0 +1,262 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package grafana + +import ( + "context" + "github.com/aws/aws-sdk-go-v2/aws" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/retry" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + awshttp "github.com/aws/aws-sdk-go-v2/aws/transport/http" + smithy "github.com/aws/smithy-go" + smithydocument "github.com/aws/smithy-go/document" + "github.com/aws/smithy-go/logging" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "net/http" + "time" +) + +const ServiceID = "grafana" +const ServiceAPIVersion = "2020-08-18" + +// Client provides the API client to make operations call for Amazon Managed +// Grafana. +type Client struct { + options Options +} + +// New returns an initialized Client based on the functional options. Provide +// additional functional options to further configure the behavior of the client, +// such as changing the client's endpoint or adding custom middleware behavior. +func New(options Options, optFns ...func(*Options)) *Client { + options = options.Copy() + + resolveDefaultLogger(&options) + + resolveRetryer(&options) + + resolveHTTPClient(&options) + + resolveHTTPSignerV4(&options) + + resolveDefaultEndpointConfiguration(&options) + + for _, fn := range optFns { + fn(&options) + } + + client := &Client{ + options: options, + } + + return client +} + +type Options struct { + // Set of options to modify how an operation is invoked. These apply to all + // operations invoked for this client. Use functional options on operation call to + // modify this list for per operation behavior. + APIOptions []func(*middleware.Stack) error + + // Configures the events that will be sent to the configured logger. + ClientLogMode aws.ClientLogMode + + // The credentials object to use when signing requests. + Credentials aws.CredentialsProvider + + // The endpoint options to be used when attempting to resolve an endpoint. + EndpointOptions EndpointResolverOptions + + // The service endpoint resolver. + EndpointResolver EndpointResolver + + // Signature Version 4 (SigV4) Signer + HTTPSignerV4 HTTPSignerV4 + + // The logger writer interface to write logging messages to. + Logger logging.Logger + + // The region to send requests to. (Required) + Region string + + // Retryer guides how HTTP requests should be retried in case of recoverable + // failures. When nil the API client will use a default retryer. + Retryer aws.Retryer + + // The HTTP client to invoke API calls with. Defaults to client's default HTTP + // implementation if nil. + HTTPClient HTTPClient +} + +// WithAPIOptions returns a functional option for setting the Client's APIOptions +// option. +func WithAPIOptions(optFns ...func(*middleware.Stack) error) func(*Options) { + return func(o *Options) { + o.APIOptions = append(o.APIOptions, optFns...) + } +} + +// WithEndpointResolver returns a functional option for setting the Client's +// EndpointResolver option. +func WithEndpointResolver(v EndpointResolver) func(*Options) { + return func(o *Options) { + o.EndpointResolver = v + } +} + +type HTTPClient interface { + Do(*http.Request) (*http.Response, error) +} + +// Copy creates a clone where the APIOptions list is deep copied. +func (o Options) Copy() Options { + to := o + to.APIOptions = make([]func(*middleware.Stack) error, len(o.APIOptions)) + copy(to.APIOptions, o.APIOptions) + return to +} +func (c *Client) invokeOperation(ctx context.Context, opID string, params interface{}, optFns []func(*Options), stackFns ...func(*middleware.Stack, Options) error) (result interface{}, metadata middleware.Metadata, err error) { + ctx = middleware.ClearStackValues(ctx) + stack := middleware.NewStack(opID, smithyhttp.NewStackRequest) + options := c.options.Copy() + for _, fn := range optFns { + fn(&options) + } + + for _, fn := range stackFns { + if err := fn(stack, options); err != nil { + return nil, metadata, err + } + } + + for _, fn := range options.APIOptions { + if err := fn(stack); err != nil { + return nil, metadata, err + } + } + + handler := middleware.DecorateHandler(smithyhttp.NewClientHandler(options.HTTPClient), stack) + result, metadata, err = handler.Handle(ctx, params) + if err != nil { + err = &smithy.OperationError{ + ServiceID: ServiceID, + OperationName: opID, + Err: err, + } + } + return result, metadata, err +} + +type noSmithyDocumentSerde = smithydocument.NoSerde + +func resolveDefaultLogger(o *Options) { + if o.Logger != nil { + return + } + o.Logger = logging.Nop{} +} + +func addSetLoggerMiddleware(stack *middleware.Stack, o Options) error { + return middleware.AddSetLoggerMiddleware(stack, o.Logger) +} + +// NewFromConfig returns a new client from the provided config. +func NewFromConfig(cfg aws.Config, optFns ...func(*Options)) *Client { + opts := Options{ + Region: cfg.Region, + HTTPClient: cfg.HTTPClient, + Credentials: cfg.Credentials, + APIOptions: cfg.APIOptions, + Logger: cfg.Logger, + ClientLogMode: cfg.ClientLogMode, + } + resolveAWSRetryerProvider(cfg, &opts) + resolveAWSEndpointResolver(cfg, &opts) + return New(opts, optFns...) +} + +func resolveHTTPClient(o *Options) { + if o.HTTPClient != nil { + return + } + o.HTTPClient = awshttp.NewBuildableClient() +} + +func resolveRetryer(o *Options) { + if o.Retryer != nil { + return + } + o.Retryer = retry.NewStandard() +} + +func resolveAWSRetryerProvider(cfg aws.Config, o *Options) { + if cfg.Retryer == nil { + return + } + o.Retryer = cfg.Retryer() +} + +func resolveAWSEndpointResolver(cfg aws.Config, o *Options) { + if cfg.EndpointResolver == nil { + return + } + o.EndpointResolver = withEndpointResolver(cfg.EndpointResolver, NewDefaultEndpointResolver()) +} + +func addClientUserAgent(stack *middleware.Stack) error { + return awsmiddleware.AddSDKAgentKeyValue(awsmiddleware.APIMetadata, "grafana", goModuleVersion)(stack) +} + +func addHTTPSignerV4Middleware(stack *middleware.Stack, o Options) error { + mw := v4.NewSignHTTPRequestMiddleware(v4.SignHTTPRequestMiddlewareOptions{ + CredentialsProvider: o.Credentials, + Signer: o.HTTPSignerV4, + LogSigning: o.ClientLogMode.IsSigning(), + }) + return stack.Finalize.Add(mw, middleware.After) +} + +type HTTPSignerV4 interface { + SignHTTP(ctx context.Context, credentials aws.Credentials, r *http.Request, payloadHash string, service string, region string, signingTime time.Time, optFns ...func(*v4.SignerOptions)) error +} + +func resolveHTTPSignerV4(o *Options) { + if o.HTTPSignerV4 != nil { + return + } + o.HTTPSignerV4 = newDefaultV4Signer(*o) +} + +func newDefaultV4Signer(o Options) *v4.Signer { + return v4.NewSigner(func(so *v4.SignerOptions) { + so.Logger = o.Logger + so.LogSigning = o.ClientLogMode.IsSigning() + }) +} + +func addRetryMiddlewares(stack *middleware.Stack, o Options) error { + mo := retry.AddRetryMiddlewaresOptions{ + Retryer: o.Retryer, + LogRetryAttempts: o.ClientLogMode.IsRetries(), + } + return retry.AddRetryMiddlewares(stack, mo) +} + +func addRequestIDRetrieverMiddleware(stack *middleware.Stack) error { + return awsmiddleware.AddRequestIDRetrieverMiddleware(stack) +} + +func addResponseErrorMiddleware(stack *middleware.Stack) error { + return awshttp.AddResponseErrorMiddleware(stack) +} + +func addRequestResponseLogging(stack *middleware.Stack, o Options) error { + return stack.Deserialize.Add(&smithyhttp.RequestResponseLogger{ + LogRequest: o.ClientLogMode.IsRequest(), + LogRequestWithBody: o.ClientLogMode.IsRequestWithBody(), + LogResponse: o.ClientLogMode.IsResponse(), + LogResponseWithBody: o.ClientLogMode.IsResponseWithBody(), + }, middleware.After) +} diff --git a/service/grafana/api_op_AssociateLicense.go b/service/grafana/api_op_AssociateLicense.go new file mode 100644 index 00000000000..8117317094a --- /dev/null +++ b/service/grafana/api_op_AssociateLicense.go @@ -0,0 +1,131 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package grafana + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/grafana/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Assigns a Grafana Enterprise license to a workspace. Upgrading to Grafana +// Enterprise incurs additional fees. For more information, see Upgrade a workspace +// to Grafana Enterprise +// (https://docs.aws.amazon.com/grafana/latest/userguide/upgrade-to-Grafana-Enterprise.html). +func (c *Client) AssociateLicense(ctx context.Context, params *AssociateLicenseInput, optFns ...func(*Options)) (*AssociateLicenseOutput, error) { + if params == nil { + params = &AssociateLicenseInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "AssociateLicense", params, optFns, c.addOperationAssociateLicenseMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*AssociateLicenseOutput) + out.ResultMetadata = metadata + return out, nil +} + +type AssociateLicenseInput struct { + + // The type of license to associate with the workspace. + // + // This member is required. + LicenseType types.LicenseType + + // The ID of the workspace to associate the license with. + // + // This member is required. + WorkspaceId *string + + noSmithyDocumentSerde +} + +type AssociateLicenseOutput struct { + + // A structure containing data about the workspace. + // + // This member is required. + Workspace *types.WorkspaceDescription + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationAssociateLicenseMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpAssociateLicense{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpAssociateLicense{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpAssociateLicenseValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opAssociateLicense(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opAssociateLicense(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "grafana", + OperationName: "AssociateLicense", + } +} diff --git a/service/grafana/api_op_CreateWorkspace.go b/service/grafana/api_op_CreateWorkspace.go new file mode 100644 index 00000000000..e9d1eee0310 --- /dev/null +++ b/service/grafana/api_op_CreateWorkspace.go @@ -0,0 +1,203 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package grafana + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/grafana/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Creates a workspace. In a workspace, you can create Grafana dashboards and +// visualizations to analyze your metrics, logs, and traces. You don't have to +// build, package, or deploy any hardware to run the Grafana server. Don't use +// CreateWorkspace to modify an existing workspace. Instead, use UpdateWorkspace +// (https://docs.aws.amazon.com/grafana/latest/APIReference/API_UpdateWorkspace.html). +func (c *Client) CreateWorkspace(ctx context.Context, params *CreateWorkspaceInput, optFns ...func(*Options)) (*CreateWorkspaceOutput, error) { + if params == nil { + params = &CreateWorkspaceInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateWorkspace", params, optFns, c.addOperationCreateWorkspaceMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateWorkspaceOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateWorkspaceInput struct { + + // Specifies whether the workspace can access Amazon Web Services resources in this + // Amazon Web Services account only, or whether it can also access Amazon Web + // Services resources in other accounts in the same organization. If you specify + // ORGANIZATION, you must specify which organizational units the workspace can + // access in the workspaceOrganizationalUnits parameter. + // + // This member is required. + AccountAccessType types.AccountAccessType + + // Specifies whether this workspace uses SAML 2.0, Amazon Web Services Single Sign + // On, or both to authenticate users for using the Grafana console within a + // workspace. For more information, see User authentication in Amazon Managed + // Grafana + // (https://docs.aws.amazon.com/grafana/latest/userguide/authentication-in-AMG.html). + // + // This member is required. + AuthenticationProviders []types.AuthenticationProviderTypes + + // If you specify Service Managed, Amazon Managed Grafana automatically creates the + // IAM roles and provisions the permissions that the workspace needs to use Amazon + // Web Services data sources and notification channels. If you specify + // CUSTOMER_MANAGED, you will manage those roles and permissions yourself. If you + // are creating this workspace in a member account of an organization that is not a + // delegated administrator account, and you want the workspace to access data + // sources in other Amazon Web Services accounts in the organization, you must + // choose CUSTOMER_MANAGED. For more information, see Amazon Managed Grafana + // permissions and policies for Amazon Web Services data sources and notification + // channels + // (https://docs.aws.amazon.com/grafana/latest/userguide/AMG-manage-permissions.html) + // + // This member is required. + PermissionType types.PermissionType + + // A unique, case-sensitive, user-provided identifier to ensure the idempotency of + // the request. + ClientToken *string + + // The name of an IAM role that already exists to use with Organizations to access + // Amazon Web Services data sources and notification channels in other accounts in + // an organization. + OrganizationRoleName *string + + // The name of the CloudFormation stack set to use to generate IAM roles to be used + // for this workspace. + StackSetName *string + + // Specify the Amazon Web Services data sources that you want to be queried in this + // workspace. Specifying these data sources here enables Amazon Managed Grafana to + // create IAM roles and permissions that allow Amazon Managed Grafana to read data + // from these sources. You must still add them as data sources in the Grafana + // console in the workspace. If you don't specify a data source here, you can still + // add it as a data source in the workspace console later. However, you will then + // have to manually configure permissions for it. + WorkspaceDataSources []types.DataSourceType + + // A description for the workspace. This is used only to help you identify this + // workspace. + WorkspaceDescription *string + + // The name for the workspace. It does not have to be unique. + WorkspaceName *string + + // Specify the Amazon Web Services notification channels that you plan to use in + // this workspace. Specifying these data sources here enables Amazon Managed + // Grafana to create IAM roles and permissions that allow Amazon Managed Grafana to + // use these channels. + WorkspaceNotificationDestinations []types.NotificationDestinationType + + // Specifies the organizational units that this workspace is allowed to use data + // sources from, if this workspace is in an account that is part of an + // organization. + WorkspaceOrganizationalUnits []string + + // The workspace needs an IAM role that grants permissions to the Amazon Web + // Services resources that the workspace will view data from. If you already have a + // role that you want to use, specify it here. If you omit this field and you + // specify some Amazon Web Services resources in workspaceDataSources or + // workspaceNotificationDestinations, a new IAM role with the necessary permissions + // is automatically created. + WorkspaceRoleArn *string + + noSmithyDocumentSerde +} + +type CreateWorkspaceOutput struct { + + // A structure containing data about the workspace that was created. + // + // This member is required. + Workspace *types.WorkspaceDescription + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateWorkspaceMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpCreateWorkspace{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpCreateWorkspace{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpCreateWorkspaceValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateWorkspace(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opCreateWorkspace(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "grafana", + OperationName: "CreateWorkspace", + } +} diff --git a/service/grafana/api_op_DeleteWorkspace.go b/service/grafana/api_op_DeleteWorkspace.go new file mode 100644 index 00000000000..ea84a78ac90 --- /dev/null +++ b/service/grafana/api_op_DeleteWorkspace.go @@ -0,0 +1,123 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package grafana + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/grafana/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Deletes an Amazon Managed Grafana workspace. +func (c *Client) DeleteWorkspace(ctx context.Context, params *DeleteWorkspaceInput, optFns ...func(*Options)) (*DeleteWorkspaceOutput, error) { + if params == nil { + params = &DeleteWorkspaceInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteWorkspace", params, optFns, c.addOperationDeleteWorkspaceMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteWorkspaceOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteWorkspaceInput struct { + + // The ID of the workspace to delete. + // + // This member is required. + WorkspaceId *string + + noSmithyDocumentSerde +} + +type DeleteWorkspaceOutput struct { + + // A structure containing information about the workspace that was deleted. + // + // This member is required. + Workspace *types.WorkspaceDescription + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteWorkspaceMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpDeleteWorkspace{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDeleteWorkspace{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpDeleteWorkspaceValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteWorkspace(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDeleteWorkspace(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "grafana", + OperationName: "DeleteWorkspace", + } +} diff --git a/service/grafana/api_op_DescribeWorkspace.go b/service/grafana/api_op_DescribeWorkspace.go new file mode 100644 index 00000000000..0985e9de5c0 --- /dev/null +++ b/service/grafana/api_op_DescribeWorkspace.go @@ -0,0 +1,123 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package grafana + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/grafana/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Displays information about one Amazon Managed Grafana workspace. +func (c *Client) DescribeWorkspace(ctx context.Context, params *DescribeWorkspaceInput, optFns ...func(*Options)) (*DescribeWorkspaceOutput, error) { + if params == nil { + params = &DescribeWorkspaceInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeWorkspace", params, optFns, c.addOperationDescribeWorkspaceMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeWorkspaceOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeWorkspaceInput struct { + + // The ID of the workspace to display information about. + // + // This member is required. + WorkspaceId *string + + noSmithyDocumentSerde +} + +type DescribeWorkspaceOutput struct { + + // A structure containing information about the workspace. + // + // This member is required. + Workspace *types.WorkspaceDescription + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeWorkspaceMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpDescribeWorkspace{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDescribeWorkspace{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpDescribeWorkspaceValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeWorkspace(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDescribeWorkspace(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "grafana", + OperationName: "DescribeWorkspace", + } +} diff --git a/service/grafana/api_op_DescribeWorkspaceAuthentication.go b/service/grafana/api_op_DescribeWorkspaceAuthentication.go new file mode 100644 index 00000000000..499ef2f0b43 --- /dev/null +++ b/service/grafana/api_op_DescribeWorkspaceAuthentication.go @@ -0,0 +1,125 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package grafana + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/grafana/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Displays information about the authentication methods used in one Amazon Managed +// Grafana workspace. +func (c *Client) DescribeWorkspaceAuthentication(ctx context.Context, params *DescribeWorkspaceAuthenticationInput, optFns ...func(*Options)) (*DescribeWorkspaceAuthenticationOutput, error) { + if params == nil { + params = &DescribeWorkspaceAuthenticationInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeWorkspaceAuthentication", params, optFns, c.addOperationDescribeWorkspaceAuthenticationMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeWorkspaceAuthenticationOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeWorkspaceAuthenticationInput struct { + + // The ID of the workspace to return authentication information about. + // + // This member is required. + WorkspaceId *string + + noSmithyDocumentSerde +} + +type DescribeWorkspaceAuthenticationOutput struct { + + // A structure containing information about the authentication methods used in the + // workspace. + // + // This member is required. + Authentication *types.AuthenticationDescription + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeWorkspaceAuthenticationMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpDescribeWorkspaceAuthentication{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDescribeWorkspaceAuthentication{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpDescribeWorkspaceAuthenticationValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeWorkspaceAuthentication(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDescribeWorkspaceAuthentication(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "grafana", + OperationName: "DescribeWorkspaceAuthentication", + } +} diff --git a/service/grafana/api_op_DisassociateLicense.go b/service/grafana/api_op_DisassociateLicense.go new file mode 100644 index 00000000000..c693be7fe1a --- /dev/null +++ b/service/grafana/api_op_DisassociateLicense.go @@ -0,0 +1,128 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package grafana + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/grafana/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Removes the Grafana Enterprise license from a workspace. +func (c *Client) DisassociateLicense(ctx context.Context, params *DisassociateLicenseInput, optFns ...func(*Options)) (*DisassociateLicenseOutput, error) { + if params == nil { + params = &DisassociateLicenseInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DisassociateLicense", params, optFns, c.addOperationDisassociateLicenseMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DisassociateLicenseOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DisassociateLicenseInput struct { + + // The type of license to remove from the workspace. + // + // This member is required. + LicenseType types.LicenseType + + // The ID of the workspace to remove the Grafana Enterprise license from. + // + // This member is required. + WorkspaceId *string + + noSmithyDocumentSerde +} + +type DisassociateLicenseOutput struct { + + // A structure containing information about the workspace. + // + // This member is required. + Workspace *types.WorkspaceDescription + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDisassociateLicenseMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpDisassociateLicense{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDisassociateLicense{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpDisassociateLicenseValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDisassociateLicense(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDisassociateLicense(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "grafana", + OperationName: "DisassociateLicense", + } +} diff --git a/service/grafana/api_op_ListPermissions.go b/service/grafana/api_op_ListPermissions.go new file mode 100644 index 00000000000..ed043ff8be1 --- /dev/null +++ b/service/grafana/api_op_ListPermissions.go @@ -0,0 +1,236 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package grafana + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/grafana/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Lists the users and groups who have the Grafana Admin and Editor roles in this +// workspace. If you use this operation without specifying userId or groupId, the +// operation returns the roles of all users and groups. If you specify a userId or +// a groupId, only the roles for that user or group are returned. If you do this, +// you can specify only one userId or one groupId. +func (c *Client) ListPermissions(ctx context.Context, params *ListPermissionsInput, optFns ...func(*Options)) (*ListPermissionsOutput, error) { + if params == nil { + params = &ListPermissionsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListPermissions", params, optFns, c.addOperationListPermissionsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListPermissionsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListPermissionsInput struct { + + // The ID of the workspace to list permissions for. This parameter is required. + // + // This member is required. + WorkspaceId *string + + // (Optional) Limits the results to only the group that matches this ID. + GroupId *string + + // The maximum number of results to include in the response. + MaxResults *int32 + + // The token to use when requesting the next set of results. You received this + // token from a previous ListPermissions operation. + NextToken *string + + // (Optional) Limits the results to only the user that matches this ID. + UserId *string + + // (Optional) If you specify SSO_USER, then only the permissions of Amazon Web + // Services SSO users are returned. If you specify SSO_GROUP, only the permissions + // of Amazon Web Services SSO groups are returned. + UserType types.UserType + + noSmithyDocumentSerde +} + +type ListPermissionsOutput struct { + + // The permissions returned by the operation. + // + // This member is required. + Permissions []types.PermissionEntry + + // The token to use in a subsequent ListPermissions operation to return the next + // set of results. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListPermissionsMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpListPermissions{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListPermissions{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpListPermissionsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListPermissions(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +// ListPermissionsAPIClient is a client that implements the ListPermissions +// operation. +type ListPermissionsAPIClient interface { + ListPermissions(context.Context, *ListPermissionsInput, ...func(*Options)) (*ListPermissionsOutput, error) +} + +var _ ListPermissionsAPIClient = (*Client)(nil) + +// ListPermissionsPaginatorOptions is the paginator options for ListPermissions +type ListPermissionsPaginatorOptions struct { + // The maximum number of results to include in the response. + Limit int32 + + // Set to true if pagination should stop if the service returns a pagination token + // that matches the most recent token provided to the service. + StopOnDuplicateToken bool +} + +// ListPermissionsPaginator is a paginator for ListPermissions +type ListPermissionsPaginator struct { + options ListPermissionsPaginatorOptions + client ListPermissionsAPIClient + params *ListPermissionsInput + nextToken *string + firstPage bool +} + +// NewListPermissionsPaginator returns a new ListPermissionsPaginator +func NewListPermissionsPaginator(client ListPermissionsAPIClient, params *ListPermissionsInput, optFns ...func(*ListPermissionsPaginatorOptions)) *ListPermissionsPaginator { + if params == nil { + params = &ListPermissionsInput{} + } + + options := ListPermissionsPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListPermissionsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListPermissionsPaginator) HasMorePages() bool { + return p.firstPage || p.nextToken != nil +} + +// NextPage retrieves the next ListPermissions page. +func (p *ListPermissionsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListPermissionsOutput, error) { + if !p.HasMorePages() { + return nil, fmt.Errorf("no more pages available") + } + + params := *p.params + params.NextToken = p.nextToken + + var limit *int32 + if p.options.Limit > 0 { + limit = &p.options.Limit + } + params.MaxResults = limit + + result, err := p.client.ListPermissions(ctx, ¶ms, optFns...) + if err != nil { + return nil, err + } + p.firstPage = false + + prevToken := p.nextToken + p.nextToken = result.NextToken + + if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken { + p.nextToken = nil + } + + return result, nil +} + +func newServiceMetadataMiddleware_opListPermissions(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "grafana", + OperationName: "ListPermissions", + } +} diff --git a/service/grafana/api_op_ListWorkspaces.go b/service/grafana/api_op_ListWorkspaces.go new file mode 100644 index 00000000000..0ecdc5bb9be --- /dev/null +++ b/service/grafana/api_op_ListWorkspaces.go @@ -0,0 +1,216 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package grafana + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/grafana/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Returns a list of Amazon Managed Grafana workspaces in the account, with some +// information about each workspace. For more complete information about one +// workspace, use DescribeWorkspace +// (https://docs.aws.amazon.com/AAMG/latest/APIReference/API_DescribeWorkspace.html). +func (c *Client) ListWorkspaces(ctx context.Context, params *ListWorkspacesInput, optFns ...func(*Options)) (*ListWorkspacesOutput, error) { + if params == nil { + params = &ListWorkspacesInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListWorkspaces", params, optFns, c.addOperationListWorkspacesMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListWorkspacesOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListWorkspacesInput struct { + + // The maximum number of workspaces to include in the results. + MaxResults *int32 + + // The token for the next set of workspaces to return. (You receive this token from + // a previous ListWorkspaces operation.) + NextToken *string + + noSmithyDocumentSerde +} + +type ListWorkspacesOutput struct { + + // An array of structures that contain some information about the workspaces in the + // account. + // + // This member is required. + Workspaces []types.WorkspaceSummary + + // The token to use when requesting the next set of workspaces. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListWorkspacesMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpListWorkspaces{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListWorkspaces{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListWorkspaces(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +// ListWorkspacesAPIClient is a client that implements the ListWorkspaces +// operation. +type ListWorkspacesAPIClient interface { + ListWorkspaces(context.Context, *ListWorkspacesInput, ...func(*Options)) (*ListWorkspacesOutput, error) +} + +var _ ListWorkspacesAPIClient = (*Client)(nil) + +// ListWorkspacesPaginatorOptions is the paginator options for ListWorkspaces +type ListWorkspacesPaginatorOptions struct { + // The maximum number of workspaces to include in the results. + Limit int32 + + // Set to true if pagination should stop if the service returns a pagination token + // that matches the most recent token provided to the service. + StopOnDuplicateToken bool +} + +// ListWorkspacesPaginator is a paginator for ListWorkspaces +type ListWorkspacesPaginator struct { + options ListWorkspacesPaginatorOptions + client ListWorkspacesAPIClient + params *ListWorkspacesInput + nextToken *string + firstPage bool +} + +// NewListWorkspacesPaginator returns a new ListWorkspacesPaginator +func NewListWorkspacesPaginator(client ListWorkspacesAPIClient, params *ListWorkspacesInput, optFns ...func(*ListWorkspacesPaginatorOptions)) *ListWorkspacesPaginator { + if params == nil { + params = &ListWorkspacesInput{} + } + + options := ListWorkspacesPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListWorkspacesPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListWorkspacesPaginator) HasMorePages() bool { + return p.firstPage || p.nextToken != nil +} + +// NextPage retrieves the next ListWorkspaces page. +func (p *ListWorkspacesPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListWorkspacesOutput, error) { + if !p.HasMorePages() { + return nil, fmt.Errorf("no more pages available") + } + + params := *p.params + params.NextToken = p.nextToken + + var limit *int32 + if p.options.Limit > 0 { + limit = &p.options.Limit + } + params.MaxResults = limit + + result, err := p.client.ListWorkspaces(ctx, ¶ms, optFns...) + if err != nil { + return nil, err + } + p.firstPage = false + + prevToken := p.nextToken + p.nextToken = result.NextToken + + if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken { + p.nextToken = nil + } + + return result, nil +} + +func newServiceMetadataMiddleware_opListWorkspaces(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "grafana", + OperationName: "ListWorkspaces", + } +} diff --git a/service/grafana/api_op_UpdatePermissions.go b/service/grafana/api_op_UpdatePermissions.go new file mode 100644 index 00000000000..17adde4e3ca --- /dev/null +++ b/service/grafana/api_op_UpdatePermissions.go @@ -0,0 +1,128 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package grafana + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/grafana/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Updates which users in a workspace have the Grafana Admin or Editor roles. +func (c *Client) UpdatePermissions(ctx context.Context, params *UpdatePermissionsInput, optFns ...func(*Options)) (*UpdatePermissionsOutput, error) { + if params == nil { + params = &UpdatePermissionsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdatePermissions", params, optFns, c.addOperationUpdatePermissionsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdatePermissionsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdatePermissionsInput struct { + + // An array of structures that contain the permission updates to make. + // + // This member is required. + UpdateInstructionBatch []types.UpdateInstruction + + // The ID of the workspace to update. + // + // This member is required. + WorkspaceId *string + + noSmithyDocumentSerde +} + +type UpdatePermissionsOutput struct { + + // An array of structures that contain the errors from the operation, if any. + // + // This member is required. + Errors []types.UpdateError + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdatePermissionsMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpUpdatePermissions{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpUpdatePermissions{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpUpdatePermissionsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdatePermissions(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opUpdatePermissions(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "grafana", + OperationName: "UpdatePermissions", + } +} diff --git a/service/grafana/api_op_UpdateWorkspace.go b/service/grafana/api_op_UpdateWorkspace.go new file mode 100644 index 00000000000..4f0fad8a7c7 --- /dev/null +++ b/service/grafana/api_op_UpdateWorkspace.go @@ -0,0 +1,193 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package grafana + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/grafana/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Modifies an existing Amazon Managed Grafana workspace. If you use this operation +// and omit any optional parameters, the existing values of those parameters are +// not changed. To modify the user authentication methods that the workspace uses, +// such as SAML or Amazon Web Services SSO, use UpdateWorkspaceAuthentication +// (https://docs.aws.amazon.com/grafana/latest/APIReference/API_UpdateWorkspaceAuthentication.html). +// To modify which users in the workspace have the Admin and Editor Grafana roles, +// use UpdatePermissions +// (https://docs.aws.amazon.com/grafana/latest/APIReference/API_UpdatePermissions.html). +func (c *Client) UpdateWorkspace(ctx context.Context, params *UpdateWorkspaceInput, optFns ...func(*Options)) (*UpdateWorkspaceOutput, error) { + if params == nil { + params = &UpdateWorkspaceInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateWorkspace", params, optFns, c.addOperationUpdateWorkspaceMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateWorkspaceOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateWorkspaceInput struct { + + // The ID of the workspace to update. + // + // This member is required. + WorkspaceId *string + + // Specifies whether the workspace can access Amazon Web Services resources in this + // Amazon Web Services account only, or whether it can also access Amazon Web + // Services resources in other accounts in the same organization. If you specify + // ORGANIZATION, you must specify which organizational units the workspace can + // access in the workspaceOrganizationalUnits parameter. + AccountAccessType types.AccountAccessType + + // The name of an IAM role that already exists to use to access resources through + // Organizations. + OrganizationRoleName *string + + // If you specify Service Managed, Amazon Managed Grafana automatically creates the + // IAM roles and provisions the permissions that the workspace needs to use Amazon + // Web Services data sources and notification channels. If you specify + // CUSTOMER_MANAGED, you will manage those roles and permissions yourself. If you + // are creating this workspace in a member account of an organization and that + // account is not a delegated administrator account, and you want the workspace to + // access data sources in other Amazon Web Services accounts in the organization, + // you must choose CUSTOMER_MANAGED. For more information, see Amazon Managed + // Grafana permissions and policies for Amazon Web Services data sources and + // notification channels + // (https://docs.aws.amazon.com/grafana/latest/userguide/AMG-manage-permissions.html) + PermissionType types.PermissionType + + // The name of the CloudFormation stack set to use to generate IAM roles to be used + // for this workspace. + StackSetName *string + + // Specify the Amazon Web Services data sources that you want to be queried in this + // workspace. Specifying these data sources here enables Amazon Managed Grafana to + // create IAM roles and permissions that allow Amazon Managed Grafana to read data + // from these sources. You must still add them as data sources in the Grafana + // console in the workspace. If you don't specify a data source here, you can still + // add it as a data source later in the workspace console. However, you will then + // have to manually configure permissions for it. + WorkspaceDataSources []types.DataSourceType + + // A description for the workspace. This is used only to help you identify this + // workspace. + WorkspaceDescription *string + + // A new name for the workspace to update. + WorkspaceName *string + + // Specify the Amazon Web Services notification channels that you plan to use in + // this workspace. Specifying these data sources here enables Amazon Managed + // Grafana to create IAM roles and permissions that allow Amazon Managed Grafana to + // use these channels. + WorkspaceNotificationDestinations []types.NotificationDestinationType + + // Specifies the organizational units that this workspace is allowed to use data + // sources from, if this workspace is in an account that is part of an + // organization. + WorkspaceOrganizationalUnits []string + + // The workspace needs an IAM role that grants permissions to the Amazon Web + // Services resources that the workspace will view data from. If you already have a + // role that you want to use, specify it here. If you omit this field and you + // specify some Amazon Web Services resources in workspaceDataSources or + // workspaceNotificationDestinations, a new IAM role with the necessary permissions + // is automatically created. + WorkspaceRoleArn *string + + noSmithyDocumentSerde +} + +type UpdateWorkspaceOutput struct { + + // A structure containing data about the workspace that was created. + // + // This member is required. + Workspace *types.WorkspaceDescription + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateWorkspaceMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpUpdateWorkspace{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpUpdateWorkspace{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpUpdateWorkspaceValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateWorkspace(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opUpdateWorkspace(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "grafana", + OperationName: "UpdateWorkspace", + } +} diff --git a/service/grafana/api_op_UpdateWorkspaceAuthentication.go b/service/grafana/api_op_UpdateWorkspaceAuthentication.go new file mode 100644 index 00000000000..49bc2c9e13e --- /dev/null +++ b/service/grafana/api_op_UpdateWorkspaceAuthentication.go @@ -0,0 +1,141 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package grafana + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/grafana/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Use this operation to define the identity provider (IdP) that this workspace +// authenticates users from, using SAML. You can also map SAML assertion attributes +// to workspace user information and define which groups in the assertion attribute +// are to have the Admin and Editor roles in the workspace. +func (c *Client) UpdateWorkspaceAuthentication(ctx context.Context, params *UpdateWorkspaceAuthenticationInput, optFns ...func(*Options)) (*UpdateWorkspaceAuthenticationOutput, error) { + if params == nil { + params = &UpdateWorkspaceAuthenticationInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateWorkspaceAuthentication", params, optFns, c.addOperationUpdateWorkspaceAuthenticationMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateWorkspaceAuthenticationOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateWorkspaceAuthenticationInput struct { + + // Specifies whether this workspace uses SAML 2.0, Amazon Web Services Single Sign + // On, or both to authenticate users for using the Grafana console within a + // workspace. For more information, see User authentication in Amazon Managed + // Grafana + // (https://docs.aws.amazon.com/grafana/latest/userguide/authentication-in-AMG.html). + // + // This member is required. + AuthenticationProviders []types.AuthenticationProviderTypes + + // The ID of the workspace to update the authentication for. + // + // This member is required. + WorkspaceId *string + + // If the workspace uses SAML, use this structure to map SAML assertion attributes + // to workspace user information and define which groups in the assertion attribute + // are to have the Admin and Editor roles in the workspace. + SamlConfiguration *types.SamlConfiguration + + noSmithyDocumentSerde +} + +type UpdateWorkspaceAuthenticationOutput struct { + + // A structure that describes the user authentication for this workspace after the + // update is made. + // + // This member is required. + Authentication *types.AuthenticationDescription + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateWorkspaceAuthenticationMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpUpdateWorkspaceAuthentication{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpUpdateWorkspaceAuthentication{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpUpdateWorkspaceAuthenticationValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateWorkspaceAuthentication(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opUpdateWorkspaceAuthentication(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "grafana", + OperationName: "UpdateWorkspaceAuthentication", + } +} diff --git a/service/grafana/deserializers.go b/service/grafana/deserializers.go new file mode 100644 index 00000000000..775cd3297c5 --- /dev/null +++ b/service/grafana/deserializers.go @@ -0,0 +1,3916 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package grafana + +import ( + "bytes" + "context" + "encoding/json" + "fmt" + "github.com/aws/aws-sdk-go-v2/aws/protocol/restjson" + "github.com/aws/aws-sdk-go-v2/service/grafana/types" + smithy "github.com/aws/smithy-go" + smithyio "github.com/aws/smithy-go/io" + "github.com/aws/smithy-go/middleware" + "github.com/aws/smithy-go/ptr" + smithytime "github.com/aws/smithy-go/time" + smithyhttp "github.com/aws/smithy-go/transport/http" + "io" + "strconv" + "strings" +) + +type awsRestjson1_deserializeOpAssociateLicense struct { +} + +func (*awsRestjson1_deserializeOpAssociateLicense) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpAssociateLicense) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorAssociateLicense(response, &metadata) + } + output := &AssociateLicenseOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsRestjson1_deserializeOpDocumentAssociateLicenseOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorAssociateLicense(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentAssociateLicenseOutput(v **AssociateLicenseOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *AssociateLicenseOutput + if *v == nil { + sv = &AssociateLicenseOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "workspace": + if err := awsRestjson1_deserializeDocumentWorkspaceDescription(&sv.Workspace, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpCreateWorkspace struct { +} + +func (*awsRestjson1_deserializeOpCreateWorkspace) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpCreateWorkspace) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorCreateWorkspace(response, &metadata) + } + output := &CreateWorkspaceOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsRestjson1_deserializeOpDocumentCreateWorkspaceOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorCreateWorkspace(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ServiceQuotaExceededException", errorCode): + return awsRestjson1_deserializeErrorServiceQuotaExceededException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentCreateWorkspaceOutput(v **CreateWorkspaceOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *CreateWorkspaceOutput + if *v == nil { + sv = &CreateWorkspaceOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "workspace": + if err := awsRestjson1_deserializeDocumentWorkspaceDescription(&sv.Workspace, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpDeleteWorkspace struct { +} + +func (*awsRestjson1_deserializeOpDeleteWorkspace) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDeleteWorkspace) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDeleteWorkspace(response, &metadata) + } + output := &DeleteWorkspaceOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsRestjson1_deserializeOpDocumentDeleteWorkspaceOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDeleteWorkspace(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentDeleteWorkspaceOutput(v **DeleteWorkspaceOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DeleteWorkspaceOutput + if *v == nil { + sv = &DeleteWorkspaceOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "workspace": + if err := awsRestjson1_deserializeDocumentWorkspaceDescription(&sv.Workspace, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpDescribeWorkspace struct { +} + +func (*awsRestjson1_deserializeOpDescribeWorkspace) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDescribeWorkspace) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDescribeWorkspace(response, &metadata) + } + output := &DescribeWorkspaceOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsRestjson1_deserializeOpDocumentDescribeWorkspaceOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDescribeWorkspace(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentDescribeWorkspaceOutput(v **DescribeWorkspaceOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DescribeWorkspaceOutput + if *v == nil { + sv = &DescribeWorkspaceOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "workspace": + if err := awsRestjson1_deserializeDocumentWorkspaceDescription(&sv.Workspace, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpDescribeWorkspaceAuthentication struct { +} + +func (*awsRestjson1_deserializeOpDescribeWorkspaceAuthentication) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDescribeWorkspaceAuthentication) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDescribeWorkspaceAuthentication(response, &metadata) + } + output := &DescribeWorkspaceAuthenticationOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsRestjson1_deserializeOpDocumentDescribeWorkspaceAuthenticationOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDescribeWorkspaceAuthentication(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentDescribeWorkspaceAuthenticationOutput(v **DescribeWorkspaceAuthenticationOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DescribeWorkspaceAuthenticationOutput + if *v == nil { + sv = &DescribeWorkspaceAuthenticationOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "authentication": + if err := awsRestjson1_deserializeDocumentAuthenticationDescription(&sv.Authentication, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpDisassociateLicense struct { +} + +func (*awsRestjson1_deserializeOpDisassociateLicense) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDisassociateLicense) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDisassociateLicense(response, &metadata) + } + output := &DisassociateLicenseOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsRestjson1_deserializeOpDocumentDisassociateLicenseOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDisassociateLicense(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentDisassociateLicenseOutput(v **DisassociateLicenseOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DisassociateLicenseOutput + if *v == nil { + sv = &DisassociateLicenseOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "workspace": + if err := awsRestjson1_deserializeDocumentWorkspaceDescription(&sv.Workspace, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpListPermissions struct { +} + +func (*awsRestjson1_deserializeOpListPermissions) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpListPermissions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorListPermissions(response, &metadata) + } + output := &ListPermissionsOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsRestjson1_deserializeOpDocumentListPermissionsOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorListPermissions(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentListPermissionsOutput(v **ListPermissionsOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *ListPermissionsOutput + if *v == nil { + sv = &ListPermissionsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "nextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PaginationToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + case "permissions": + if err := awsRestjson1_deserializeDocumentPermissionEntryList(&sv.Permissions, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpListWorkspaces struct { +} + +func (*awsRestjson1_deserializeOpListWorkspaces) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpListWorkspaces) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorListWorkspaces(response, &metadata) + } + output := &ListWorkspacesOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsRestjson1_deserializeOpDocumentListWorkspacesOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorListWorkspaces(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentListWorkspacesOutput(v **ListWorkspacesOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *ListWorkspacesOutput + if *v == nil { + sv = &ListWorkspacesOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "nextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PaginationToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + case "workspaces": + if err := awsRestjson1_deserializeDocumentWorkspaceList(&sv.Workspaces, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpUpdatePermissions struct { +} + +func (*awsRestjson1_deserializeOpUpdatePermissions) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpUpdatePermissions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorUpdatePermissions(response, &metadata) + } + output := &UpdatePermissionsOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsRestjson1_deserializeOpDocumentUpdatePermissionsOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorUpdatePermissions(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentUpdatePermissionsOutput(v **UpdatePermissionsOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *UpdatePermissionsOutput + if *v == nil { + sv = &UpdatePermissionsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "errors": + if err := awsRestjson1_deserializeDocumentUpdateErrorList(&sv.Errors, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpUpdateWorkspace struct { +} + +func (*awsRestjson1_deserializeOpUpdateWorkspace) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpUpdateWorkspace) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorUpdateWorkspace(response, &metadata) + } + output := &UpdateWorkspaceOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsRestjson1_deserializeOpDocumentUpdateWorkspaceOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorUpdateWorkspace(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentUpdateWorkspaceOutput(v **UpdateWorkspaceOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *UpdateWorkspaceOutput + if *v == nil { + sv = &UpdateWorkspaceOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "workspace": + if err := awsRestjson1_deserializeDocumentWorkspaceDescription(&sv.Workspace, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpUpdateWorkspaceAuthentication struct { +} + +func (*awsRestjson1_deserializeOpUpdateWorkspaceAuthentication) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpUpdateWorkspaceAuthentication) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorUpdateWorkspaceAuthentication(response, &metadata) + } + output := &UpdateWorkspaceAuthenticationOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsRestjson1_deserializeOpDocumentUpdateWorkspaceAuthenticationOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorUpdateWorkspaceAuthentication(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentUpdateWorkspaceAuthenticationOutput(v **UpdateWorkspaceAuthenticationOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *UpdateWorkspaceAuthenticationOutput + if *v == nil { + sv = &UpdateWorkspaceAuthenticationOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "authentication": + if err := awsRestjson1_deserializeDocumentAuthenticationDescription(&sv.Authentication, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeOpHttpBindingsInternalServerException(v *types.InternalServerException, response *smithyhttp.Response) error { + if v == nil { + return fmt.Errorf("unsupported deserialization for nil %T", v) + } + + if headerValues := response.Header.Values("Retry-After"); len(headerValues) != 0 { + headerValues[0] = strings.TrimSpace(headerValues[0]) + vv, err := strconv.ParseInt(headerValues[0], 0, 32) + if err != nil { + return err + } + v.RetryAfterSeconds = ptr.Int32(int32(vv)) + } + + return nil +} +func awsRestjson1_deserializeOpHttpBindingsThrottlingException(v *types.ThrottlingException, response *smithyhttp.Response) error { + if v == nil { + return fmt.Errorf("unsupported deserialization for nil %T", v) + } + + if headerValues := response.Header.Values("Retry-After"); len(headerValues) != 0 { + headerValues[0] = strings.TrimSpace(headerValues[0]) + vv, err := strconv.ParseInt(headerValues[0], 0, 32) + if err != nil { + return err + } + v.RetryAfterSeconds = ptr.Int32(int32(vv)) + } + + return nil +} +func awsRestjson1_deserializeErrorAccessDeniedException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.AccessDeniedException{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + err := awsRestjson1_deserializeDocumentAccessDeniedException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + + return output +} + +func awsRestjson1_deserializeErrorConflictException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.ConflictException{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + err := awsRestjson1_deserializeDocumentConflictException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + + return output +} + +func awsRestjson1_deserializeErrorInternalServerException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.InternalServerException{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + err := awsRestjson1_deserializeDocumentInternalServerException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + + if err := awsRestjson1_deserializeOpHttpBindingsInternalServerException(output, response); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response error with invalid HTTP bindings, %w", err)} + } + + return output +} + +func awsRestjson1_deserializeErrorResourceNotFoundException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.ResourceNotFoundException{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + err := awsRestjson1_deserializeDocumentResourceNotFoundException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + + return output +} + +func awsRestjson1_deserializeErrorServiceQuotaExceededException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.ServiceQuotaExceededException{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + err := awsRestjson1_deserializeDocumentServiceQuotaExceededException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + + return output +} + +func awsRestjson1_deserializeErrorThrottlingException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.ThrottlingException{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + err := awsRestjson1_deserializeDocumentThrottlingException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + + if err := awsRestjson1_deserializeOpHttpBindingsThrottlingException(output, response); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response error with invalid HTTP bindings, %w", err)} + } + + return output +} + +func awsRestjson1_deserializeErrorValidationException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.ValidationException{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + err := awsRestjson1_deserializeDocumentValidationException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + + return output +} + +func awsRestjson1_deserializeDocumentAccessDeniedException(v **types.AccessDeniedException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AccessDeniedException + if *v == nil { + sv = &types.AccessDeniedException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAllowedOrganizations(v *[]string, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AllowedOrganization to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAssertionAttributes(v **types.AssertionAttributes, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AssertionAttributes + if *v == nil { + sv = &types.AssertionAttributes{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "email": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AssertionAttribute to be of type string, got %T instead", value) + } + sv.Email = ptr.String(jtv) + } + + case "groups": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AssertionAttribute to be of type string, got %T instead", value) + } + sv.Groups = ptr.String(jtv) + } + + case "login": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AssertionAttribute to be of type string, got %T instead", value) + } + sv.Login = ptr.String(jtv) + } + + case "name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AssertionAttribute to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "org": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AssertionAttribute to be of type string, got %T instead", value) + } + sv.Org = ptr.String(jtv) + } + + case "role": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AssertionAttribute to be of type string, got %T instead", value) + } + sv.Role = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAuthenticationDescription(v **types.AuthenticationDescription, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AuthenticationDescription + if *v == nil { + sv = &types.AuthenticationDescription{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "awsSso": + if err := awsRestjson1_deserializeDocumentAwsSsoAuthentication(&sv.AwsSso, value); err != nil { + return err + } + + case "providers": + if err := awsRestjson1_deserializeDocumentAuthenticationProviders(&sv.Providers, value); err != nil { + return err + } + + case "saml": + if err := awsRestjson1_deserializeDocumentSamlAuthentication(&sv.Saml, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAuthenticationProviders(v *[]types.AuthenticationProviderTypes, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AuthenticationProviderTypes + if *v == nil { + cv = []types.AuthenticationProviderTypes{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AuthenticationProviderTypes + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AuthenticationProviderTypes to be of type string, got %T instead", value) + } + col = types.AuthenticationProviderTypes(jtv) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAuthenticationSummary(v **types.AuthenticationSummary, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AuthenticationSummary + if *v == nil { + sv = &types.AuthenticationSummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "providers": + if err := awsRestjson1_deserializeDocumentAuthenticationProviders(&sv.Providers, value); err != nil { + return err + } + + case "samlConfigurationStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SamlConfigurationStatus to be of type string, got %T instead", value) + } + sv.SamlConfigurationStatus = types.SamlConfigurationStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsSsoAuthentication(v **types.AwsSsoAuthentication, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsSsoAuthentication + if *v == nil { + sv = &types.AwsSsoAuthentication{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ssoClientId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SSOClientId to be of type string, got %T instead", value) + } + sv.SsoClientId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentConflictException(v **types.ConflictException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ConflictException + if *v == nil { + sv = &types.ConflictException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + case "resourceId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ResourceId = ptr.String(jtv) + } + + case "resourceType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ResourceType = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentDataSourceTypesList(v *[]types.DataSourceType, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.DataSourceType + if *v == nil { + cv = []types.DataSourceType{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.DataSourceType + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataSourceType to be of type string, got %T instead", value) + } + col = types.DataSourceType(jtv) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentIdpMetadata(v *types.IdpMetadata, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var uv types.IdpMetadata +loop: + for key, value := range shape { + if value == nil { + continue + } + switch key { + case "url": + var mv string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected IdpMetadataUrl to be of type string, got %T instead", value) + } + mv = jtv + } + uv = &types.IdpMetadataMemberUrl{Value: mv} + break loop + + case "xml": + var mv string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + mv = jtv + } + uv = &types.IdpMetadataMemberXml{Value: mv} + break loop + + default: + uv = &types.UnknownUnionMember{Tag: key} + break loop + + } + } + *v = uv + return nil +} + +func awsRestjson1_deserializeDocumentInternalServerException(v **types.InternalServerException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.InternalServerException + if *v == nil { + sv = &types.InternalServerException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + case "retryAfterSeconds": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.RetryAfterSeconds = ptr.Int32(int32(i64)) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentNotificationDestinationsList(v *[]types.NotificationDestinationType, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.NotificationDestinationType + if *v == nil { + cv = []types.NotificationDestinationType{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.NotificationDestinationType + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NotificationDestinationType to be of type string, got %T instead", value) + } + col = types.NotificationDestinationType(jtv) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentOrganizationalUnitList(v *[]string, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OrganizationalUnit to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentPermissionEntry(v **types.PermissionEntry, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.PermissionEntry + if *v == nil { + sv = &types.PermissionEntry{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "role": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Role to be of type string, got %T instead", value) + } + sv.Role = types.Role(jtv) + } + + case "user": + if err := awsRestjson1_deserializeDocumentUser(&sv.User, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentPermissionEntryList(v *[]types.PermissionEntry, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.PermissionEntry + if *v == nil { + cv = []types.PermissionEntry{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.PermissionEntry + destAddr := &col + if err := awsRestjson1_deserializeDocumentPermissionEntry(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentResourceNotFoundException(v **types.ResourceNotFoundException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ResourceNotFoundException + if *v == nil { + sv = &types.ResourceNotFoundException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + case "resourceId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ResourceId = ptr.String(jtv) + } + + case "resourceType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ResourceType = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentRoleValueList(v *[]string, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RoleValue to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentRoleValues(v **types.RoleValues, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.RoleValues + if *v == nil { + sv = &types.RoleValues{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "admin": + if err := awsRestjson1_deserializeDocumentRoleValueList(&sv.Admin, value); err != nil { + return err + } + + case "editor": + if err := awsRestjson1_deserializeDocumentRoleValueList(&sv.Editor, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentSamlAuthentication(v **types.SamlAuthentication, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.SamlAuthentication + if *v == nil { + sv = &types.SamlAuthentication{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "configuration": + if err := awsRestjson1_deserializeDocumentSamlConfiguration(&sv.Configuration, value); err != nil { + return err + } + + case "status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SamlConfigurationStatus to be of type string, got %T instead", value) + } + sv.Status = types.SamlConfigurationStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentSamlConfiguration(v **types.SamlConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.SamlConfiguration + if *v == nil { + sv = &types.SamlConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "allowedOrganizations": + if err := awsRestjson1_deserializeDocumentAllowedOrganizations(&sv.AllowedOrganizations, value); err != nil { + return err + } + + case "assertionAttributes": + if err := awsRestjson1_deserializeDocumentAssertionAttributes(&sv.AssertionAttributes, value); err != nil { + return err + } + + case "idpMetadata": + if err := awsRestjson1_deserializeDocumentIdpMetadata(&sv.IdpMetadata, value); err != nil { + return err + } + + case "loginValidityDuration": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected LoginValidityDuration to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.LoginValidityDuration = int32(i64) + } + + case "roleValues": + if err := awsRestjson1_deserializeDocumentRoleValues(&sv.RoleValues, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentServiceQuotaExceededException(v **types.ServiceQuotaExceededException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ServiceQuotaExceededException + if *v == nil { + sv = &types.ServiceQuotaExceededException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + case "quotaCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.QuotaCode = ptr.String(jtv) + } + + case "resourceId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ResourceId = ptr.String(jtv) + } + + case "resourceType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ResourceType = ptr.String(jtv) + } + + case "serviceCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ServiceCode = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentThrottlingException(v **types.ThrottlingException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ThrottlingException + if *v == nil { + sv = &types.ThrottlingException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + case "quotaCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.QuotaCode = ptr.String(jtv) + } + + case "retryAfterSeconds": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.RetryAfterSeconds = ptr.Int32(int32(i64)) + } + + case "serviceCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ServiceCode = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentUpdateError(v **types.UpdateError, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.UpdateError + if *v == nil { + sv = &types.UpdateError{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "causedBy": + if err := awsRestjson1_deserializeDocumentUpdateInstruction(&sv.CausedBy, value); err != nil { + return err + } + + case "code": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Code = ptr.Int32(int32(i64)) + } + + case "message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentUpdateErrorList(v *[]types.UpdateError, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.UpdateError + if *v == nil { + cv = []types.UpdateError{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.UpdateError + destAddr := &col + if err := awsRestjson1_deserializeDocumentUpdateError(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentUpdateInstruction(v **types.UpdateInstruction, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.UpdateInstruction + if *v == nil { + sv = &types.UpdateInstruction{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "action": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected UpdateAction to be of type string, got %T instead", value) + } + sv.Action = types.UpdateAction(jtv) + } + + case "role": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Role to be of type string, got %T instead", value) + } + sv.Role = types.Role(jtv) + } + + case "users": + if err := awsRestjson1_deserializeDocumentUserList(&sv.Users, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentUser(v **types.User, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.User + if *v == nil { + sv = &types.User{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SsoId to be of type string, got %T instead", value) + } + sv.Id = ptr.String(jtv) + } + + case "type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected UserType to be of type string, got %T instead", value) + } + sv.Type = types.UserType(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentUserList(v *[]types.User, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.User + if *v == nil { + cv = []types.User{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.User + destAddr := &col + if err := awsRestjson1_deserializeDocumentUser(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentValidationException(v **types.ValidationException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ValidationException + if *v == nil { + sv = &types.ValidationException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "fieldList": + if err := awsRestjson1_deserializeDocumentValidationExceptionFieldList(&sv.FieldList, value); err != nil { + return err + } + + case "message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + case "reason": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ValidationExceptionReason to be of type string, got %T instead", value) + } + sv.Reason = types.ValidationExceptionReason(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentValidationExceptionField(v **types.ValidationExceptionField, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ValidationExceptionField + if *v == nil { + sv = &types.ValidationExceptionField{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + case "name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentValidationExceptionFieldList(v *[]types.ValidationExceptionField, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.ValidationExceptionField + if *v == nil { + cv = []types.ValidationExceptionField{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ValidationExceptionField + destAddr := &col + if err := awsRestjson1_deserializeDocumentValidationExceptionField(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentWorkspaceDescription(v **types.WorkspaceDescription, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.WorkspaceDescription + if *v == nil { + sv = &types.WorkspaceDescription{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "accountAccessType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AccountAccessType to be of type string, got %T instead", value) + } + sv.AccountAccessType = types.AccountAccessType(jtv) + } + + case "authentication": + if err := awsRestjson1_deserializeDocumentAuthenticationSummary(&sv.Authentication, value); err != nil { + return err + } + + case "created": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.Created = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "dataSources": + if err := awsRestjson1_deserializeDocumentDataSourceTypesList(&sv.DataSources, value); err != nil { + return err + } + + case "description": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Description to be of type string, got %T instead", value) + } + sv.Description = ptr.String(jtv) + } + + case "endpoint": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Endpoint to be of type string, got %T instead", value) + } + sv.Endpoint = ptr.String(jtv) + } + + case "freeTrialConsumed": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.FreeTrialConsumed = ptr.Bool(jtv) + } + + case "freeTrialExpiration": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.FreeTrialExpiration = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "grafanaVersion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected GrafanaVersion to be of type string, got %T instead", value) + } + sv.GrafanaVersion = ptr.String(jtv) + } + + case "id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected WorkspaceId to be of type string, got %T instead", value) + } + sv.Id = ptr.String(jtv) + } + + case "licenseExpiration": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.LicenseExpiration = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "licenseType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected LicenseType to be of type string, got %T instead", value) + } + sv.LicenseType = types.LicenseType(jtv) + } + + case "modified": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.Modified = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected WorkspaceName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "notificationDestinations": + if err := awsRestjson1_deserializeDocumentNotificationDestinationsList(&sv.NotificationDestinations, value); err != nil { + return err + } + + case "organizationalUnits": + if err := awsRestjson1_deserializeDocumentOrganizationalUnitList(&sv.OrganizationalUnits, value); err != nil { + return err + } + + case "organizationRoleName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OrganizationRoleName to be of type string, got %T instead", value) + } + sv.OrganizationRoleName = ptr.String(jtv) + } + + case "permissionType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PermissionType to be of type string, got %T instead", value) + } + sv.PermissionType = types.PermissionType(jtv) + } + + case "stackSetName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected StackSetName to be of type string, got %T instead", value) + } + sv.StackSetName = ptr.String(jtv) + } + + case "status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected WorkspaceStatus to be of type string, got %T instead", value) + } + sv.Status = types.WorkspaceStatus(jtv) + } + + case "workspaceRoleArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected IamRoleArn to be of type string, got %T instead", value) + } + sv.WorkspaceRoleArn = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentWorkspaceList(v *[]types.WorkspaceSummary, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.WorkspaceSummary + if *v == nil { + cv = []types.WorkspaceSummary{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.WorkspaceSummary + destAddr := &col + if err := awsRestjson1_deserializeDocumentWorkspaceSummary(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentWorkspaceSummary(v **types.WorkspaceSummary, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.WorkspaceSummary + if *v == nil { + sv = &types.WorkspaceSummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "authentication": + if err := awsRestjson1_deserializeDocumentAuthenticationSummary(&sv.Authentication, value); err != nil { + return err + } + + case "created": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.Created = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "description": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Description to be of type string, got %T instead", value) + } + sv.Description = ptr.String(jtv) + } + + case "endpoint": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Endpoint to be of type string, got %T instead", value) + } + sv.Endpoint = ptr.String(jtv) + } + + case "grafanaVersion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected GrafanaVersion to be of type string, got %T instead", value) + } + sv.GrafanaVersion = ptr.String(jtv) + } + + case "id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected WorkspaceId to be of type string, got %T instead", value) + } + sv.Id = ptr.String(jtv) + } + + case "modified": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.Modified = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected WorkspaceName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "notificationDestinations": + if err := awsRestjson1_deserializeDocumentNotificationDestinationsList(&sv.NotificationDestinations, value); err != nil { + return err + } + + case "status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected WorkspaceStatus to be of type string, got %T instead", value) + } + sv.Status = types.WorkspaceStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} diff --git a/service/grafana/doc.go b/service/grafana/doc.go new file mode 100644 index 00000000000..149ca668cb4 --- /dev/null +++ b/service/grafana/doc.go @@ -0,0 +1,15 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +// Package grafana provides the API client, operations, and parameter types for +// Amazon Managed Grafana. +// +// Amazon Managed Grafana is a fully managed and secure data visualization service +// that you can use to instantly query, correlate, and visualize operational +// metrics, logs, and traces from multiple sources. Amazon Managed Grafana makes it +// easy to deploy, operate, and scale Grafana, a widely deployed data visualization +// tool that is popular for its extensible data support. With Amazon Managed +// Grafana, you create logically isolated Grafana servers called workspaces. In a +// workspace, you can create Grafana dashboards and visualizations to analyze your +// metrics, logs, and traces without having to build, package, or deploy any +// hardware to run Grafana servers. +package grafana diff --git a/service/grafana/endpoints.go b/service/grafana/endpoints.go new file mode 100644 index 00000000000..0951362f338 --- /dev/null +++ b/service/grafana/endpoints.go @@ -0,0 +1,160 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package grafana + +import ( + "context" + "errors" + "fmt" + "github.com/aws/aws-sdk-go-v2/aws" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + internalendpoints "github.com/aws/aws-sdk-go-v2/service/grafana/internal/endpoints" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "net/url" +) + +// EndpointResolverOptions is the service endpoint resolver options +type EndpointResolverOptions = internalendpoints.Options + +// EndpointResolver interface for resolving service endpoints. +type EndpointResolver interface { + ResolveEndpoint(region string, options EndpointResolverOptions) (aws.Endpoint, error) +} + +var _ EndpointResolver = &internalendpoints.Resolver{} + +// NewDefaultEndpointResolver constructs a new service endpoint resolver +func NewDefaultEndpointResolver() *internalendpoints.Resolver { + return internalendpoints.New() +} + +// EndpointResolverFunc is a helper utility that wraps a function so it satisfies +// the EndpointResolver interface. This is useful when you want to add additional +// endpoint resolving logic, or stub out specific endpoints with custom values. +type EndpointResolverFunc func(region string, options EndpointResolverOptions) (aws.Endpoint, error) + +func (fn EndpointResolverFunc) ResolveEndpoint(region string, options EndpointResolverOptions) (endpoint aws.Endpoint, err error) { + return fn(region, options) +} + +func resolveDefaultEndpointConfiguration(o *Options) { + if o.EndpointResolver != nil { + return + } + o.EndpointResolver = NewDefaultEndpointResolver() +} + +// EndpointResolverFromURL returns an EndpointResolver configured using the +// provided endpoint url. By default, the resolved endpoint resolver uses the +// client region as signing region, and the endpoint source is set to +// EndpointSourceCustom.You can provide functional options to configure endpoint +// values for the resolved endpoint. +func EndpointResolverFromURL(url string, optFns ...func(*aws.Endpoint)) EndpointResolver { + e := aws.Endpoint{URL: url, Source: aws.EndpointSourceCustom} + for _, fn := range optFns { + fn(&e) + } + + return EndpointResolverFunc( + func(region string, options EndpointResolverOptions) (aws.Endpoint, error) { + if len(e.SigningRegion) == 0 { + e.SigningRegion = region + } + return e, nil + }, + ) +} + +type ResolveEndpoint struct { + Resolver EndpointResolver + Options EndpointResolverOptions +} + +func (*ResolveEndpoint) ID() string { + return "ResolveEndpoint" +} + +func (m *ResolveEndpoint) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + req, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, fmt.Errorf("unknown transport type %T", in.Request) + } + + if m.Resolver == nil { + return out, metadata, fmt.Errorf("expected endpoint resolver to not be nil") + } + + var endpoint aws.Endpoint + endpoint, err = m.Resolver.ResolveEndpoint(awsmiddleware.GetRegion(ctx), m.Options) + if err != nil { + return out, metadata, fmt.Errorf("failed to resolve service endpoint, %w", err) + } + + req.URL, err = url.Parse(endpoint.URL) + if err != nil { + return out, metadata, fmt.Errorf("failed to parse endpoint URL: %w", err) + } + + if len(awsmiddleware.GetSigningName(ctx)) == 0 { + signingName := endpoint.SigningName + if len(signingName) == 0 { + signingName = "grafana" + } + ctx = awsmiddleware.SetSigningName(ctx, signingName) + } + ctx = awsmiddleware.SetEndpointSource(ctx, endpoint.Source) + ctx = smithyhttp.SetHostnameImmutable(ctx, endpoint.HostnameImmutable) + ctx = awsmiddleware.SetSigningRegion(ctx, endpoint.SigningRegion) + ctx = awsmiddleware.SetPartitionID(ctx, endpoint.PartitionID) + return next.HandleSerialize(ctx, in) +} +func addResolveEndpointMiddleware(stack *middleware.Stack, o Options) error { + return stack.Serialize.Insert(&ResolveEndpoint{ + Resolver: o.EndpointResolver, + Options: o.EndpointOptions, + }, "OperationSerializer", middleware.Before) +} + +func removeResolveEndpointMiddleware(stack *middleware.Stack) error { + _, err := stack.Serialize.Remove((&ResolveEndpoint{}).ID()) + return err +} + +type wrappedEndpointResolver struct { + awsResolver aws.EndpointResolver + resolver EndpointResolver +} + +func (w *wrappedEndpointResolver) ResolveEndpoint(region string, options EndpointResolverOptions) (endpoint aws.Endpoint, err error) { + if w.awsResolver == nil { + goto fallback + } + endpoint, err = w.awsResolver.ResolveEndpoint(ServiceID, region) + if err == nil { + return endpoint, nil + } + + if nf := (&aws.EndpointNotFoundError{}); !errors.As(err, &nf) { + return endpoint, err + } + +fallback: + if w.resolver == nil { + return endpoint, fmt.Errorf("default endpoint resolver provided was nil") + } + return w.resolver.ResolveEndpoint(region, options) +} + +// withEndpointResolver returns an EndpointResolver that first delegates endpoint +// resolution to the awsResolver. If awsResolver returns aws.EndpointNotFoundError +// error, the resolver will use the the provided fallbackResolver for resolution. +// awsResolver and fallbackResolver must not be nil +func withEndpointResolver(awsResolver aws.EndpointResolver, fallbackResolver EndpointResolver) EndpointResolver { + return &wrappedEndpointResolver{ + awsResolver: awsResolver, + resolver: fallbackResolver, + } +} diff --git a/service/grafana/generated.json b/service/grafana/generated.json new file mode 100644 index 00000000000..3f939ee0cf7 --- /dev/null +++ b/service/grafana/generated.json @@ -0,0 +1,36 @@ +{ + "dependencies": { + "github.com/aws/aws-sdk-go-v2": "v1.4.0", + "github.com/aws/smithy-go": "v1.4.0" + }, + "files": [ + "api_client.go", + "api_op_AssociateLicense.go", + "api_op_CreateWorkspace.go", + "api_op_DeleteWorkspace.go", + "api_op_DescribeWorkspace.go", + "api_op_DescribeWorkspaceAuthentication.go", + "api_op_DisassociateLicense.go", + "api_op_ListPermissions.go", + "api_op_ListWorkspaces.go", + "api_op_UpdatePermissions.go", + "api_op_UpdateWorkspace.go", + "api_op_UpdateWorkspaceAuthentication.go", + "deserializers.go", + "doc.go", + "endpoints.go", + "generated.json", + "internal/endpoints/endpoints.go", + "internal/endpoints/endpoints_test.go", + "protocol_test.go", + "serializers.go", + "types/enums.go", + "types/errors.go", + "types/types.go", + "types/types_exported_test.go", + "validators.go" + ], + "go": "1.15", + "module": "github.com/aws/aws-sdk-go-v2/service/grafana", + "unstable": false +} diff --git a/service/grafana/go.mod b/service/grafana/go.mod new file mode 100644 index 00000000000..ebba3a223c3 --- /dev/null +++ b/service/grafana/go.mod @@ -0,0 +1,10 @@ +module github.com/aws/aws-sdk-go-v2/service/grafana + +go 1.15 + +require ( + github.com/aws/aws-sdk-go-v2 v1.9.1 + github.com/aws/smithy-go v1.8.0 +) + +replace github.com/aws/aws-sdk-go-v2 => ../../ diff --git a/service/grafana/go.sum b/service/grafana/go.sum new file mode 100644 index 00000000000..779915f8ab7 --- /dev/null +++ b/service/grafana/go.sum @@ -0,0 +1,14 @@ +github.com/aws/smithy-go v1.8.0 h1:AEwwwXQZtUwP5Mz506FeXXrKBe0jA8gVM+1gEcSRooc= +github.com/aws/smithy-go v1.8.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/service/grafana/go_module_metadata.go b/service/grafana/go_module_metadata.go new file mode 100644 index 00000000000..2a84f919373 --- /dev/null +++ b/service/grafana/go_module_metadata.go @@ -0,0 +1,6 @@ +// Code generated by internal/repotools/cmd/updatemodulemeta DO NOT EDIT. + +package grafana + +// goModuleVersion is the tagged release for this module +const goModuleVersion = "tip" diff --git a/service/grafana/internal/endpoints/endpoints.go b/service/grafana/internal/endpoints/endpoints.go new file mode 100644 index 00000000000..7b8c5e4d1ea --- /dev/null +++ b/service/grafana/internal/endpoints/endpoints.go @@ -0,0 +1,168 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package endpoints + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/endpoints" + "regexp" +) + +// Options is the endpoint resolver configuration options +type Options struct { + DisableHTTPS bool +} + +// Resolver grafana endpoint resolver +type Resolver struct { + partitions endpoints.Partitions +} + +// ResolveEndpoint resolves the service endpoint for the given region and options +func (r *Resolver) ResolveEndpoint(region string, options Options) (endpoint aws.Endpoint, err error) { + if len(region) == 0 { + return endpoint, &aws.MissingRegionError{} + } + + opt := endpoints.Options{ + DisableHTTPS: options.DisableHTTPS, + } + return r.partitions.ResolveEndpoint(region, opt) +} + +// New returns a new Resolver +func New() *Resolver { + return &Resolver{ + partitions: defaultPartitions, + } +} + +var partitionRegexp = struct { + Aws *regexp.Regexp + AwsCn *regexp.Regexp + AwsIso *regexp.Regexp + AwsIsoB *regexp.Regexp + AwsUsGov *regexp.Regexp +}{ + + Aws: regexp.MustCompile("^(us|eu|ap|sa|ca|me|af)\\-\\w+\\-\\d+$"), + AwsCn: regexp.MustCompile("^cn\\-\\w+\\-\\d+$"), + AwsIso: regexp.MustCompile("^us\\-iso\\-\\w+\\-\\d+$"), + AwsIsoB: regexp.MustCompile("^us\\-isob\\-\\w+\\-\\d+$"), + AwsUsGov: regexp.MustCompile("^us\\-gov\\-\\w+\\-\\d+$"), +} + +var defaultPartitions = endpoints.Partitions{ + { + ID: "aws", + Defaults: endpoints.Endpoint{ + Hostname: "grafana.{region}.amazonaws.com", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + RegionRegex: partitionRegexp.Aws, + IsRegionalized: true, + Endpoints: endpoints.Endpoints{ + "ap-northeast-1": endpoints.Endpoint{ + Hostname: "grafana.ap-northeast-1.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "ap-northeast-1", + }, + }, + "ap-northeast-2": endpoints.Endpoint{ + Hostname: "grafana.ap-northeast-2.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "ap-northeast-2", + }, + }, + "ap-southeast-1": endpoints.Endpoint{ + Hostname: "grafana.ap-southeast-1.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "ap-southeast-1", + }, + }, + "ap-southeast-2": endpoints.Endpoint{ + Hostname: "grafana.ap-southeast-2.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "ap-southeast-2", + }, + }, + "eu-central-1": endpoints.Endpoint{ + Hostname: "grafana.eu-central-1.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "eu-central-1", + }, + }, + "eu-west-1": endpoints.Endpoint{ + Hostname: "grafana.eu-west-1.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "eu-west-1", + }, + }, + "eu-west-2": endpoints.Endpoint{ + Hostname: "grafana.eu-west-2.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "eu-west-2", + }, + }, + "us-east-1": endpoints.Endpoint{ + Hostname: "grafana.us-east-1.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-east-1", + }, + }, + "us-east-2": endpoints.Endpoint{ + Hostname: "grafana.us-east-2.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-east-2", + }, + }, + "us-west-2": endpoints.Endpoint{ + Hostname: "grafana.us-west-2.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-west-2", + }, + }, + }, + }, + { + ID: "aws-cn", + Defaults: endpoints.Endpoint{ + Hostname: "grafana.{region}.amazonaws.com.cn", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + RegionRegex: partitionRegexp.AwsCn, + IsRegionalized: true, + }, + { + ID: "aws-iso", + Defaults: endpoints.Endpoint{ + Hostname: "grafana.{region}.c2s.ic.gov", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + RegionRegex: partitionRegexp.AwsIso, + IsRegionalized: true, + }, + { + ID: "aws-iso-b", + Defaults: endpoints.Endpoint{ + Hostname: "grafana.{region}.sc2s.sgov.gov", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + RegionRegex: partitionRegexp.AwsIsoB, + IsRegionalized: true, + }, + { + ID: "aws-us-gov", + Defaults: endpoints.Endpoint{ + Hostname: "grafana.{region}.amazonaws.com", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + RegionRegex: partitionRegexp.AwsUsGov, + IsRegionalized: true, + }, +} diff --git a/service/grafana/internal/endpoints/endpoints_test.go b/service/grafana/internal/endpoints/endpoints_test.go new file mode 100644 index 00000000000..08e5da2d833 --- /dev/null +++ b/service/grafana/internal/endpoints/endpoints_test.go @@ -0,0 +1,11 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package endpoints + +import ( + "testing" +) + +func TestRegexCompile(t *testing.T) { + _ = defaultPartitions +} diff --git a/service/grafana/protocol_test.go b/service/grafana/protocol_test.go new file mode 100644 index 00000000000..732bb6bb017 --- /dev/null +++ b/service/grafana/protocol_test.go @@ -0,0 +1,3 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package grafana diff --git a/service/grafana/serializers.go b/service/grafana/serializers.go new file mode 100644 index 00000000000..5858dfc3f5f --- /dev/null +++ b/service/grafana/serializers.go @@ -0,0 +1,1145 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package grafana + +import ( + "bytes" + "context" + "fmt" + "github.com/aws/aws-sdk-go-v2/service/grafana/types" + smithy "github.com/aws/smithy-go" + "github.com/aws/smithy-go/encoding/httpbinding" + smithyjson "github.com/aws/smithy-go/encoding/json" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +type awsRestjson1_serializeOpAssociateLicense struct { +} + +func (*awsRestjson1_serializeOpAssociateLicense) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpAssociateLicense) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*AssociateLicenseInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/workspaces/{workspaceId}/licenses/{licenseType}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsAssociateLicenseInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsAssociateLicenseInput(v *AssociateLicenseInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if len(v.LicenseType) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member licenseType must not be empty")} + } + if len(v.LicenseType) > 0 { + if err := encoder.SetURI("licenseType").String(string(v.LicenseType)); err != nil { + return err + } + } + + if v.WorkspaceId == nil || len(*v.WorkspaceId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member workspaceId must not be empty")} + } + if v.WorkspaceId != nil { + if err := encoder.SetURI("workspaceId").String(*v.WorkspaceId); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpCreateWorkspace struct { +} + +func (*awsRestjson1_serializeOpCreateWorkspace) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpCreateWorkspace) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*CreateWorkspaceInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/workspaces") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentCreateWorkspaceInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsCreateWorkspaceInput(v *CreateWorkspaceInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentCreateWorkspaceInput(v *CreateWorkspaceInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.AccountAccessType) > 0 { + ok := object.Key("accountAccessType") + ok.String(string(v.AccountAccessType)) + } + + if v.AuthenticationProviders != nil { + ok := object.Key("authenticationProviders") + if err := awsRestjson1_serializeDocumentAuthenticationProviders(v.AuthenticationProviders, ok); err != nil { + return err + } + } + + if v.ClientToken != nil { + ok := object.Key("clientToken") + ok.String(*v.ClientToken) + } + + if v.OrganizationRoleName != nil { + ok := object.Key("organizationRoleName") + ok.String(*v.OrganizationRoleName) + } + + if len(v.PermissionType) > 0 { + ok := object.Key("permissionType") + ok.String(string(v.PermissionType)) + } + + if v.StackSetName != nil { + ok := object.Key("stackSetName") + ok.String(*v.StackSetName) + } + + if v.WorkspaceDataSources != nil { + ok := object.Key("workspaceDataSources") + if err := awsRestjson1_serializeDocumentDataSourceTypesList(v.WorkspaceDataSources, ok); err != nil { + return err + } + } + + if v.WorkspaceDescription != nil { + ok := object.Key("workspaceDescription") + ok.String(*v.WorkspaceDescription) + } + + if v.WorkspaceName != nil { + ok := object.Key("workspaceName") + ok.String(*v.WorkspaceName) + } + + if v.WorkspaceNotificationDestinations != nil { + ok := object.Key("workspaceNotificationDestinations") + if err := awsRestjson1_serializeDocumentNotificationDestinationsList(v.WorkspaceNotificationDestinations, ok); err != nil { + return err + } + } + + if v.WorkspaceOrganizationalUnits != nil { + ok := object.Key("workspaceOrganizationalUnits") + if err := awsRestjson1_serializeDocumentOrganizationalUnitList(v.WorkspaceOrganizationalUnits, ok); err != nil { + return err + } + } + + if v.WorkspaceRoleArn != nil { + ok := object.Key("workspaceRoleArn") + ok.String(*v.WorkspaceRoleArn) + } + + return nil +} + +type awsRestjson1_serializeOpDeleteWorkspace struct { +} + +func (*awsRestjson1_serializeOpDeleteWorkspace) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDeleteWorkspace) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DeleteWorkspaceInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/workspaces/{workspaceId}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "DELETE" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsDeleteWorkspaceInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsDeleteWorkspaceInput(v *DeleteWorkspaceInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.WorkspaceId == nil || len(*v.WorkspaceId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member workspaceId must not be empty")} + } + if v.WorkspaceId != nil { + if err := encoder.SetURI("workspaceId").String(*v.WorkspaceId); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpDescribeWorkspace struct { +} + +func (*awsRestjson1_serializeOpDescribeWorkspace) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDescribeWorkspace) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DescribeWorkspaceInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/workspaces/{workspaceId}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "GET" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsDescribeWorkspaceInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsDescribeWorkspaceInput(v *DescribeWorkspaceInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.WorkspaceId == nil || len(*v.WorkspaceId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member workspaceId must not be empty")} + } + if v.WorkspaceId != nil { + if err := encoder.SetURI("workspaceId").String(*v.WorkspaceId); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpDescribeWorkspaceAuthentication struct { +} + +func (*awsRestjson1_serializeOpDescribeWorkspaceAuthentication) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDescribeWorkspaceAuthentication) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DescribeWorkspaceAuthenticationInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/workspaces/{workspaceId}/authentication") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "GET" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsDescribeWorkspaceAuthenticationInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsDescribeWorkspaceAuthenticationInput(v *DescribeWorkspaceAuthenticationInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.WorkspaceId == nil || len(*v.WorkspaceId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member workspaceId must not be empty")} + } + if v.WorkspaceId != nil { + if err := encoder.SetURI("workspaceId").String(*v.WorkspaceId); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpDisassociateLicense struct { +} + +func (*awsRestjson1_serializeOpDisassociateLicense) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDisassociateLicense) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DisassociateLicenseInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/workspaces/{workspaceId}/licenses/{licenseType}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "DELETE" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsDisassociateLicenseInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsDisassociateLicenseInput(v *DisassociateLicenseInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if len(v.LicenseType) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member licenseType must not be empty")} + } + if len(v.LicenseType) > 0 { + if err := encoder.SetURI("licenseType").String(string(v.LicenseType)); err != nil { + return err + } + } + + if v.WorkspaceId == nil || len(*v.WorkspaceId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member workspaceId must not be empty")} + } + if v.WorkspaceId != nil { + if err := encoder.SetURI("workspaceId").String(*v.WorkspaceId); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpListPermissions struct { +} + +func (*awsRestjson1_serializeOpListPermissions) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpListPermissions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*ListPermissionsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/workspaces/{workspaceId}/permissions") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "GET" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsListPermissionsInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsListPermissionsInput(v *ListPermissionsInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.GroupId != nil { + encoder.SetQuery("groupId").String(*v.GroupId) + } + + if v.MaxResults != nil { + encoder.SetQuery("maxResults").Integer(*v.MaxResults) + } + + if v.NextToken != nil { + encoder.SetQuery("nextToken").String(*v.NextToken) + } + + if v.UserId != nil { + encoder.SetQuery("userId").String(*v.UserId) + } + + if len(v.UserType) > 0 { + encoder.SetQuery("userType").String(string(v.UserType)) + } + + if v.WorkspaceId == nil || len(*v.WorkspaceId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member workspaceId must not be empty")} + } + if v.WorkspaceId != nil { + if err := encoder.SetURI("workspaceId").String(*v.WorkspaceId); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpListWorkspaces struct { +} + +func (*awsRestjson1_serializeOpListWorkspaces) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpListWorkspaces) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*ListWorkspacesInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/workspaces") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "GET" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsListWorkspacesInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsListWorkspacesInput(v *ListWorkspacesInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.MaxResults != nil { + encoder.SetQuery("maxResults").Integer(*v.MaxResults) + } + + if v.NextToken != nil { + encoder.SetQuery("nextToken").String(*v.NextToken) + } + + return nil +} + +type awsRestjson1_serializeOpUpdatePermissions struct { +} + +func (*awsRestjson1_serializeOpUpdatePermissions) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpUpdatePermissions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*UpdatePermissionsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/workspaces/{workspaceId}/permissions") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "PATCH" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsUpdatePermissionsInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentUpdatePermissionsInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsUpdatePermissionsInput(v *UpdatePermissionsInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.WorkspaceId == nil || len(*v.WorkspaceId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member workspaceId must not be empty")} + } + if v.WorkspaceId != nil { + if err := encoder.SetURI("workspaceId").String(*v.WorkspaceId); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentUpdatePermissionsInput(v *UpdatePermissionsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.UpdateInstructionBatch != nil { + ok := object.Key("updateInstructionBatch") + if err := awsRestjson1_serializeDocumentUpdateInstructionBatch(v.UpdateInstructionBatch, ok); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpUpdateWorkspace struct { +} + +func (*awsRestjson1_serializeOpUpdateWorkspace) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpUpdateWorkspace) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*UpdateWorkspaceInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/workspaces/{workspaceId}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "PUT" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsUpdateWorkspaceInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentUpdateWorkspaceInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsUpdateWorkspaceInput(v *UpdateWorkspaceInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.WorkspaceId == nil || len(*v.WorkspaceId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member workspaceId must not be empty")} + } + if v.WorkspaceId != nil { + if err := encoder.SetURI("workspaceId").String(*v.WorkspaceId); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentUpdateWorkspaceInput(v *UpdateWorkspaceInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.AccountAccessType) > 0 { + ok := object.Key("accountAccessType") + ok.String(string(v.AccountAccessType)) + } + + if v.OrganizationRoleName != nil { + ok := object.Key("organizationRoleName") + ok.String(*v.OrganizationRoleName) + } + + if len(v.PermissionType) > 0 { + ok := object.Key("permissionType") + ok.String(string(v.PermissionType)) + } + + if v.StackSetName != nil { + ok := object.Key("stackSetName") + ok.String(*v.StackSetName) + } + + if v.WorkspaceDataSources != nil { + ok := object.Key("workspaceDataSources") + if err := awsRestjson1_serializeDocumentDataSourceTypesList(v.WorkspaceDataSources, ok); err != nil { + return err + } + } + + if v.WorkspaceDescription != nil { + ok := object.Key("workspaceDescription") + ok.String(*v.WorkspaceDescription) + } + + if v.WorkspaceName != nil { + ok := object.Key("workspaceName") + ok.String(*v.WorkspaceName) + } + + if v.WorkspaceNotificationDestinations != nil { + ok := object.Key("workspaceNotificationDestinations") + if err := awsRestjson1_serializeDocumentNotificationDestinationsList(v.WorkspaceNotificationDestinations, ok); err != nil { + return err + } + } + + if v.WorkspaceOrganizationalUnits != nil { + ok := object.Key("workspaceOrganizationalUnits") + if err := awsRestjson1_serializeDocumentOrganizationalUnitList(v.WorkspaceOrganizationalUnits, ok); err != nil { + return err + } + } + + if v.WorkspaceRoleArn != nil { + ok := object.Key("workspaceRoleArn") + ok.String(*v.WorkspaceRoleArn) + } + + return nil +} + +type awsRestjson1_serializeOpUpdateWorkspaceAuthentication struct { +} + +func (*awsRestjson1_serializeOpUpdateWorkspaceAuthentication) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpUpdateWorkspaceAuthentication) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*UpdateWorkspaceAuthenticationInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/workspaces/{workspaceId}/authentication") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsUpdateWorkspaceAuthenticationInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentUpdateWorkspaceAuthenticationInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsUpdateWorkspaceAuthenticationInput(v *UpdateWorkspaceAuthenticationInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.WorkspaceId == nil || len(*v.WorkspaceId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member workspaceId must not be empty")} + } + if v.WorkspaceId != nil { + if err := encoder.SetURI("workspaceId").String(*v.WorkspaceId); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentUpdateWorkspaceAuthenticationInput(v *UpdateWorkspaceAuthenticationInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AuthenticationProviders != nil { + ok := object.Key("authenticationProviders") + if err := awsRestjson1_serializeDocumentAuthenticationProviders(v.AuthenticationProviders, ok); err != nil { + return err + } + } + + if v.SamlConfiguration != nil { + ok := object.Key("samlConfiguration") + if err := awsRestjson1_serializeDocumentSamlConfiguration(v.SamlConfiguration, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentAllowedOrganizations(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + +func awsRestjson1_serializeDocumentAssertionAttributes(v *types.AssertionAttributes, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Email != nil { + ok := object.Key("email") + ok.String(*v.Email) + } + + if v.Groups != nil { + ok := object.Key("groups") + ok.String(*v.Groups) + } + + if v.Login != nil { + ok := object.Key("login") + ok.String(*v.Login) + } + + if v.Name != nil { + ok := object.Key("name") + ok.String(*v.Name) + } + + if v.Org != nil { + ok := object.Key("org") + ok.String(*v.Org) + } + + if v.Role != nil { + ok := object.Key("role") + ok.String(*v.Role) + } + + return nil +} + +func awsRestjson1_serializeDocumentAuthenticationProviders(v []types.AuthenticationProviderTypes, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(string(v[i])) + } + return nil +} + +func awsRestjson1_serializeDocumentDataSourceTypesList(v []types.DataSourceType, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(string(v[i])) + } + return nil +} + +func awsRestjson1_serializeDocumentIdpMetadata(v types.IdpMetadata, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + switch uv := v.(type) { + case *types.IdpMetadataMemberUrl: + av := object.Key("url") + av.String(uv.Value) + + case *types.IdpMetadataMemberXml: + av := object.Key("xml") + av.String(uv.Value) + + default: + return fmt.Errorf("attempted to serialize unknown member type %T for union %T", uv, v) + + } + return nil +} + +func awsRestjson1_serializeDocumentNotificationDestinationsList(v []types.NotificationDestinationType, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(string(v[i])) + } + return nil +} + +func awsRestjson1_serializeDocumentOrganizationalUnitList(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + +func awsRestjson1_serializeDocumentRoleValueList(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + +func awsRestjson1_serializeDocumentRoleValues(v *types.RoleValues, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Admin != nil { + ok := object.Key("admin") + if err := awsRestjson1_serializeDocumentRoleValueList(v.Admin, ok); err != nil { + return err + } + } + + if v.Editor != nil { + ok := object.Key("editor") + if err := awsRestjson1_serializeDocumentRoleValueList(v.Editor, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentSamlConfiguration(v *types.SamlConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AllowedOrganizations != nil { + ok := object.Key("allowedOrganizations") + if err := awsRestjson1_serializeDocumentAllowedOrganizations(v.AllowedOrganizations, ok); err != nil { + return err + } + } + + if v.AssertionAttributes != nil { + ok := object.Key("assertionAttributes") + if err := awsRestjson1_serializeDocumentAssertionAttributes(v.AssertionAttributes, ok); err != nil { + return err + } + } + + if v.IdpMetadata != nil { + ok := object.Key("idpMetadata") + if err := awsRestjson1_serializeDocumentIdpMetadata(v.IdpMetadata, ok); err != nil { + return err + } + } + + if v.LoginValidityDuration != 0 { + ok := object.Key("loginValidityDuration") + ok.Integer(v.LoginValidityDuration) + } + + if v.RoleValues != nil { + ok := object.Key("roleValues") + if err := awsRestjson1_serializeDocumentRoleValues(v.RoleValues, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentUpdateInstruction(v *types.UpdateInstruction, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.Action) > 0 { + ok := object.Key("action") + ok.String(string(v.Action)) + } + + if len(v.Role) > 0 { + ok := object.Key("role") + ok.String(string(v.Role)) + } + + if v.Users != nil { + ok := object.Key("users") + if err := awsRestjson1_serializeDocumentUserList(v.Users, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentUpdateInstructionBatch(v []types.UpdateInstruction, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentUpdateInstruction(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentUser(v *types.User, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Id != nil { + ok := object.Key("id") + ok.String(*v.Id) + } + + if len(v.Type) > 0 { + ok := object.Key("type") + ok.String(string(v.Type)) + } + + return nil +} + +func awsRestjson1_serializeDocumentUserList(v []types.User, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentUser(&v[i], av); err != nil { + return err + } + } + return nil +} diff --git a/service/grafana/types/enums.go b/service/grafana/types/enums.go new file mode 100644 index 00000000000..350d8122857 --- /dev/null +++ b/service/grafana/types/enums.go @@ -0,0 +1,284 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package types + +type AccountAccessType string + +// Enum values for AccountAccessType +const ( + // Indicates that the customer is using Grafana to monitor resources in their + // current account. + AccountAccessTypeCurrentAccount AccountAccessType = "CURRENT_ACCOUNT" + // Indicates that the customer is using Grafana to monitor resources in + // organizational units. + AccountAccessTypeOrganization AccountAccessType = "ORGANIZATION" +) + +// Values returns all known values for AccountAccessType. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (AccountAccessType) Values() []AccountAccessType { + return []AccountAccessType{ + "CURRENT_ACCOUNT", + "ORGANIZATION", + } +} + +type AuthenticationProviderTypes string + +// Enum values for AuthenticationProviderTypes +const ( + // Indicates that AMG workspace has AWS SSO enabled as its authentication provider. + AuthenticationProviderTypesAwsSso AuthenticationProviderTypes = "AWS_SSO" + // Indicates that the AMG workspace has SAML enabled as its authentication + // provider. + AuthenticationProviderTypesSaml AuthenticationProviderTypes = "SAML" +) + +// Values returns all known values for AuthenticationProviderTypes. Note that this +// can be expanded in the future, and so it is only as up to date as the client. +// The ordering of this slice is not guaranteed to be stable across updates. +func (AuthenticationProviderTypes) Values() []AuthenticationProviderTypes { + return []AuthenticationProviderTypes{ + "AWS_SSO", + "SAML", + } +} + +type DataSourceType string + +// Enum values for DataSourceType +const ( + // Amazon OpenSearch Service + DataSourceTypeAmazonOpensearchService DataSourceType = "AMAZON_OPENSEARCH_SERVICE" + // CloudWatch Logs + DataSourceTypeCloudwatch DataSourceType = "CLOUDWATCH" + // Managed Prometheus + DataSourceTypePrometheus DataSourceType = "PROMETHEUS" + // X-Ray + DataSourceTypeXray DataSourceType = "XRAY" + // Timestream + DataSourceTypeTimestream DataSourceType = "TIMESTREAM" + // IoT SiteWise + DataSourceTypeSitewise DataSourceType = "SITEWISE" +) + +// Values returns all known values for DataSourceType. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (DataSourceType) Values() []DataSourceType { + return []DataSourceType{ + "AMAZON_OPENSEARCH_SERVICE", + "CLOUDWATCH", + "PROMETHEUS", + "XRAY", + "TIMESTREAM", + "SITEWISE", + } +} + +type LicenseType string + +// Enum values for LicenseType +const ( + // Grafana Enterprise License. + LicenseTypeEnterprise LicenseType = "ENTERPRISE" + // Grafana Enterprise Free Trial License. + LicenseTypeEnterpriseFreeTrial LicenseType = "ENTERPRISE_FREE_TRIAL" +) + +// Values returns all known values for LicenseType. Note that this can be expanded +// in the future, and so it is only as up to date as the client. The ordering of +// this slice is not guaranteed to be stable across updates. +func (LicenseType) Values() []LicenseType { + return []LicenseType{ + "ENTERPRISE", + "ENTERPRISE_FREE_TRIAL", + } +} + +type NotificationDestinationType string + +// Enum values for NotificationDestinationType +const ( + // AWS Simple Notification Service + NotificationDestinationTypeSns NotificationDestinationType = "SNS" +) + +// Values returns all known values for NotificationDestinationType. Note that this +// can be expanded in the future, and so it is only as up to date as the client. +// The ordering of this slice is not guaranteed to be stable across updates. +func (NotificationDestinationType) Values() []NotificationDestinationType { + return []NotificationDestinationType{ + "SNS", + } +} + +type PermissionType string + +// Enum values for PermissionType +const ( + // Customer Managed + PermissionTypeCustomerManaged PermissionType = "CUSTOMER_MANAGED" + // Service Managed + PermissionTypeServiceManaged PermissionType = "SERVICE_MANAGED" +) + +// Values returns all known values for PermissionType. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (PermissionType) Values() []PermissionType { + return []PermissionType{ + "CUSTOMER_MANAGED", + "SERVICE_MANAGED", + } +} + +type Role string + +// Enum values for Role +const ( + // Role Admin. + RoleAdmin Role = "ADMIN" + // Role Editor. + RoleEditor Role = "EDITOR" +) + +// Values returns all known values for Role. Note that this can be expanded in the +// future, and so it is only as up to date as the client. The ordering of this +// slice is not guaranteed to be stable across updates. +func (Role) Values() []Role { + return []Role{ + "ADMIN", + "EDITOR", + } +} + +type SamlConfigurationStatus string + +// Enum values for SamlConfigurationStatus +const ( + // Indicates that SAML on an AMG workspace is enabled and has been configured. + SamlConfigurationStatusConfigured SamlConfigurationStatus = "CONFIGURED" + // Indicates that SAML on an AMG workspace is enabled but has not been configured. + SamlConfigurationStatusNotConfigured SamlConfigurationStatus = "NOT_CONFIGURED" +) + +// Values returns all known values for SamlConfigurationStatus. Note that this can +// be expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (SamlConfigurationStatus) Values() []SamlConfigurationStatus { + return []SamlConfigurationStatus{ + "CONFIGURED", + "NOT_CONFIGURED", + } +} + +type UpdateAction string + +// Enum values for UpdateAction +const ( + // Add permissions. + UpdateActionAdd UpdateAction = "ADD" + // Revoke permissions. + UpdateActionRevoke UpdateAction = "REVOKE" +) + +// Values returns all known values for UpdateAction. Note that this can be expanded +// in the future, and so it is only as up to date as the client. The ordering of +// this slice is not guaranteed to be stable across updates. +func (UpdateAction) Values() []UpdateAction { + return []UpdateAction{ + "ADD", + "REVOKE", + } +} + +type UserType string + +// Enum values for UserType +const ( + // SSO user. + UserTypeSsoUser UserType = "SSO_USER" + // SSO group. + UserTypeSsoGroup UserType = "SSO_GROUP" +) + +// Values returns all known values for UserType. Note that this can be expanded in +// the future, and so it is only as up to date as the client. The ordering of this +// slice is not guaranteed to be stable across updates. +func (UserType) Values() []UserType { + return []UserType{ + "SSO_USER", + "SSO_GROUP", + } +} + +type ValidationExceptionReason string + +// Enum values for ValidationExceptionReason +const ( + ValidationExceptionReasonUnknownOperation ValidationExceptionReason = "UNKNOWN_OPERATION" + ValidationExceptionReasonCannotParse ValidationExceptionReason = "CANNOT_PARSE" + ValidationExceptionReasonFieldValidationFailed ValidationExceptionReason = "FIELD_VALIDATION_FAILED" + ValidationExceptionReasonOther ValidationExceptionReason = "OTHER" +) + +// Values returns all known values for ValidationExceptionReason. Note that this +// can be expanded in the future, and so it is only as up to date as the client. +// The ordering of this slice is not guaranteed to be stable across updates. +func (ValidationExceptionReason) Values() []ValidationExceptionReason { + return []ValidationExceptionReason{ + "UNKNOWN_OPERATION", + "CANNOT_PARSE", + "FIELD_VALIDATION_FAILED", + "OTHER", + } +} + +type WorkspaceStatus string + +// Enum values for WorkspaceStatus +const ( + // Workspace is active. + WorkspaceStatusActive WorkspaceStatus = "ACTIVE" + // Workspace is being created. + WorkspaceStatusCreating WorkspaceStatus = "CREATING" + // Workspace is being deleted. + WorkspaceStatusDeleting WorkspaceStatus = "DELETING" + // Workspace is in an invalid state, it can only and should be deleted. + WorkspaceStatusFailed WorkspaceStatus = "FAILED" + // Workspace is being updated. + WorkspaceStatusUpdating WorkspaceStatus = "UPDATING" + // Workspace is being upgraded to enterprise. + WorkspaceStatusUpgrading WorkspaceStatus = "UPGRADING" + // Workspace deletion failed. + WorkspaceStatusDeletionFailed WorkspaceStatus = "DELETION_FAILED" + // Workspace creation failed. + WorkspaceStatusCreationFailed WorkspaceStatus = "CREATION_FAILED" + // Workspace update failed. + WorkspaceStatusUpdateFailed WorkspaceStatus = "UPDATE_FAILED" + // Workspace upgrade failed. + WorkspaceStatusUpgradeFailed WorkspaceStatus = "UPGRADE_FAILED" + // Failed to remove enterprise license from workspace. + WorkspaceStatusLicenseRemovalFailed WorkspaceStatus = "LICENSE_REMOVAL_FAILED" +) + +// Values returns all known values for WorkspaceStatus. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (WorkspaceStatus) Values() []WorkspaceStatus { + return []WorkspaceStatus{ + "ACTIVE", + "CREATING", + "DELETING", + "FAILED", + "UPDATING", + "UPGRADING", + "DELETION_FAILED", + "CREATION_FAILED", + "UPDATE_FAILED", + "UPGRADE_FAILED", + "LICENSE_REMOVAL_FAILED", + } +} diff --git a/service/grafana/types/errors.go b/service/grafana/types/errors.go new file mode 100644 index 00000000000..566936beb61 --- /dev/null +++ b/service/grafana/types/errors.go @@ -0,0 +1,161 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package types + +import ( + "fmt" + smithy "github.com/aws/smithy-go" +) + +// You do not have sufficient permissions to perform this action. +type AccessDeniedException struct { + Message *string + + noSmithyDocumentSerde +} + +func (e *AccessDeniedException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *AccessDeniedException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *AccessDeniedException) ErrorCode() string { return "AccessDeniedException" } +func (e *AccessDeniedException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + +// A resource was in an inconsistent state during an update or a deletion. +type ConflictException struct { + Message *string + + ResourceId *string + ResourceType *string + + noSmithyDocumentSerde +} + +func (e *ConflictException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *ConflictException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *ConflictException) ErrorCode() string { return "ConflictException" } +func (e *ConflictException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + +// Unexpected error while processing the request. Retry the request. +type InternalServerException struct { + Message *string + + RetryAfterSeconds *int32 + + noSmithyDocumentSerde +} + +func (e *InternalServerException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *InternalServerException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *InternalServerException) ErrorCode() string { return "InternalServerException" } +func (e *InternalServerException) ErrorFault() smithy.ErrorFault { return smithy.FaultServer } + +// The request references a resource that does not exist. +type ResourceNotFoundException struct { + Message *string + + ResourceId *string + ResourceType *string + + noSmithyDocumentSerde +} + +func (e *ResourceNotFoundException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *ResourceNotFoundException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *ResourceNotFoundException) ErrorCode() string { return "ResourceNotFoundException" } +func (e *ResourceNotFoundException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + +// The request would cause a service quota to be exceeded. +type ServiceQuotaExceededException struct { + Message *string + + ResourceId *string + ResourceType *string + ServiceCode *string + QuotaCode *string + + noSmithyDocumentSerde +} + +func (e *ServiceQuotaExceededException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *ServiceQuotaExceededException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *ServiceQuotaExceededException) ErrorCode() string { return "ServiceQuotaExceededException" } +func (e *ServiceQuotaExceededException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + +// The request was denied because of request throttling. Retry the request. +type ThrottlingException struct { + Message *string + + ServiceCode *string + QuotaCode *string + RetryAfterSeconds *int32 + + noSmithyDocumentSerde +} + +func (e *ThrottlingException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *ThrottlingException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *ThrottlingException) ErrorCode() string { return "ThrottlingException" } +func (e *ThrottlingException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + +// The value of a parameter in the request caused an error. +type ValidationException struct { + Message *string + + Reason ValidationExceptionReason + FieldList []ValidationExceptionField + + noSmithyDocumentSerde +} + +func (e *ValidationException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *ValidationException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *ValidationException) ErrorCode() string { return "ValidationException" } +func (e *ValidationException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } diff --git a/service/grafana/types/types.go b/service/grafana/types/types.go new file mode 100644 index 00000000000..d6c645acabb --- /dev/null +++ b/service/grafana/types/types.go @@ -0,0 +1,457 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package types + +import ( + smithydocument "github.com/aws/smithy-go/document" + "time" +) + +// A structure that defines which attributes in the IdP assertion are to be used to +// define information about the users authenticated by the IdP to use the +// workspace. +type AssertionAttributes struct { + + // The name of the attribute within the SAML assertion to use as the email names + // for SAML users. + Email *string + + // The name of the attribute within the SAML assertion to use as the user full + // "friendly" names for user groups. + Groups *string + + // The name of the attribute within the SAML assertion to use as the login names + // for SAML users. + Login *string + + // The name of the attribute within the SAML assertion to use as the user full + // "friendly" names for SAML users. + Name *string + + // The name of the attribute within the SAML assertion to use as the user full + // "friendly" names for the users' organizations. + Org *string + + // The name of the attribute within the SAML assertion to use as the user roles. + Role *string + + noSmithyDocumentSerde +} + +// A structure containing information about the user authentication methods used by +// the workspace. +type AuthenticationDescription struct { + + // Specifies whether this workspace uses Amazon Web Services SSO, SAML, or both + // methods to authenticate users to use the Grafana console in the Amazon Managed + // Grafana workspace. + // + // This member is required. + Providers []AuthenticationProviderTypes + + // A structure containing information about how this workspace works with Amazon + // Web Services SSO. + AwsSso *AwsSsoAuthentication + + // A structure containing information about how this workspace works with SAML, + // including what attributes within the assertion are to be mapped to user + // information in the workspace. + Saml *SamlAuthentication + + noSmithyDocumentSerde +} + +// A structure that describes whether the workspace uses SAML, Amazon Web Services +// SSO, or both methods for user authentication, and whether that authentication is +// fully configured. +type AuthenticationSummary struct { + + // Specifies whether the workspace uses SAML, Amazon Web Services SSO, or both + // methods for user authentication. + // + // This member is required. + Providers []AuthenticationProviderTypes + + // Specifies whether the workplace's user authentication method is fully + // configured. + SamlConfigurationStatus SamlConfigurationStatus + + noSmithyDocumentSerde +} + +// A structure containing information about how this workspace works with Amazon +// Web Services SSO. +type AwsSsoAuthentication struct { + + // The ID of the Amazon Web Services SSO-managed application that is created by + // Amazon Managed Grafana. + SsoClientId *string + + noSmithyDocumentSerde +} + +// A structure containing the identity provider (IdP) metadata used to integrate +// the identity provider with this workspace. You can specify the metadata either +// by providing a URL to its location in the url parameter, or by specifying the +// full metadata in XML format in the xml parameter. +// +// The following types satisfy this interface: +// IdpMetadataMemberUrl +// IdpMetadataMemberXml +type IdpMetadata interface { + isIdpMetadata() +} + +// The URL of the location containing the metadata. +type IdpMetadataMemberUrl struct { + Value string + + noSmithyDocumentSerde +} + +func (*IdpMetadataMemberUrl) isIdpMetadata() {} + +// The actual full metadata file, in XML format. +type IdpMetadataMemberXml struct { + Value string + + noSmithyDocumentSerde +} + +func (*IdpMetadataMemberXml) isIdpMetadata() {} + +// A structure containing the identity of one user or group and the Admin or Editor +// role that they have. +type PermissionEntry struct { + + // Specifies whether the user or group has the Admin or Editor role. + // + // This member is required. + Role Role + + // A structure with the ID of the user or group with this role. + // + // This member is required. + User *User + + noSmithyDocumentSerde +} + +// This structure defines which groups defined in the SAML assertion attribute are +// to be mapped to the Grafana Admin and Editor roles in the workspace. +type RoleValues struct { + + // A list of groups from the SAML assertion attribute to grant the Grafana Admin + // role to. + Admin []string + + // A list of groups from the SAML assertion attribute to grant the Grafana Editor + // role to. + Editor []string + + noSmithyDocumentSerde +} + +// A structure containing information about how this workspace works with SAML. +type SamlAuthentication struct { + + // Specifies whether the workspace's SAML configuration is complete. + // + // This member is required. + Status SamlConfigurationStatus + + // A structure containing details about how this workspace works with SAML. + Configuration *SamlConfiguration + + noSmithyDocumentSerde +} + +// A structure containing information about how this workspace works with SAML. +type SamlConfiguration struct { + + // A structure containing the identity provider (IdP) metadata used to integrate + // the identity provider with this workspace. + // + // This member is required. + IdpMetadata IdpMetadata + + // Lists which organizations defined in the SAML assertion are allowed to use the + // Amazon Managed Grafana workspace. If this is empty, all organizations in the + // assertion attribute have access. + AllowedOrganizations []string + + // A structure that defines which attributes in the SAML assertion are to be used + // to define information about the users authenticated by that IdP to use the + // workspace. + AssertionAttributes *AssertionAttributes + + // How long a sign-on session by a SAML user is valid, before the user has to sign + // on again. + LoginValidityDuration int32 + + // A structure containing arrays that map group names in the SAML assertion to the + // Grafana Admin and Editor roles in the workspace. + RoleValues *RoleValues + + noSmithyDocumentSerde +} + +// A structure containing information about one error encountered while performing +// an UpdatePermissions +// (https://docs.aws.amazon.com/grafana/latest/APIReference/API_UpdatePermissions.html) +// operation. +type UpdateError struct { + + // Specifies which permission update caused the error. + // + // This member is required. + CausedBy *UpdateInstruction + + // The error code. + // + // This member is required. + Code *int32 + + // The message for this error. + // + // This member is required. + Message *string + + noSmithyDocumentSerde +} + +// Contains the instructions for one Grafana role permission update in a +// UpdatePermissions +// (https://docs.aws.amazon.com/grafana/latest/APIReference/API_UpdatePermissions.html) +// operation. +type UpdateInstruction struct { + + // Specifies whether this update is to add or revoke role permissions. + // + // This member is required. + Action UpdateAction + + // The role to add or revoke for the user or the group specified in users. + // + // This member is required. + Role Role + + // A structure that specifies the user or group to add or revoke the role for. + // + // This member is required. + Users []User + + noSmithyDocumentSerde +} + +// A structure that specifies one user or group in the workspace. +type User struct { + + // The ID of the user or group. + // + // This member is required. + Id *string + + // Specifies whether this is a single user or a group. + // + // This member is required. + Type UserType + + noSmithyDocumentSerde +} + +// A structure that contains information about a request parameter that caused an +// error. +type ValidationExceptionField struct { + + // A message describing why this field couldn't be validated. + // + // This member is required. + Message *string + + // The name of the field that caused the validation error. + // + // This member is required. + Name *string + + noSmithyDocumentSerde +} + +// A structure containing information about an Amazon Managed Grafana workspace in +// your account. +type WorkspaceDescription struct { + + // A structure that describes whether the workspace uses SAML, Amazon Web Services + // SSO, or both methods for user authentication. + // + // This member is required. + Authentication *AuthenticationSummary + + // The date that the workspace was created. + // + // This member is required. + Created *time.Time + + // Specifies the Amazon Web Services data sources that have been configured to have + // IAM roles and permissions created to allow Amazon Managed Grafana to read data + // from these sources. + // + // This member is required. + DataSources []DataSourceType + + // The URL that users can use to access the Grafana console in the workspace. + // + // This member is required. + Endpoint *string + + // The version of Grafana supported in this workspace. + // + // This member is required. + GrafanaVersion *string + + // The unique ID of this workspace. + // + // This member is required. + Id *string + + // The most recent date that the workspace was modified. + // + // This member is required. + Modified *time.Time + + // The current status of the workspace. + // + // This member is required. + Status WorkspaceStatus + + // Specifies whether the workspace can access Amazon Web Services resources in this + // Amazon Web Services account only, or whether it can also access Amazon Web + // Services resources in other accounts in the same organization. If this is + // ORGANIZATION, the workspaceOrganizationalUnits parameter specifies which + // organizational units the workspace can access. + AccountAccessType AccountAccessType + + // The user-defined description of the workspace. + Description *string + + // Specifies whether this workspace has already fully used its free trial for + // Grafana Enterprise. + FreeTrialConsumed *bool + + // If this workspace is currently in the free trial period for Grafana Enterprise, + // this value specifies when that free trial ends. + FreeTrialExpiration *time.Time + + // If this workspace has a full Grafana Enterprise license, this specifies when the + // license ends and will need to be renewed. + LicenseExpiration *time.Time + + // Specifies whether this workspace has a full Grafana Enterprise license or a free + // trial license. + LicenseType LicenseType + + // The name of the workspace. + Name *string + + // The Amazon Web Services notification channels that Amazon Managed Grafana can + // automatically create IAM roles and permissions for, to allow Amazon Managed + // Grafana to use these channels. + NotificationDestinations []NotificationDestinationType + + // The name of the IAM role that is used to access resources through Organizations. + OrganizationRoleName *string + + // Specifies the organizational units that this workspace is allowed to use data + // sources from, if this workspace is in an account that is part of an + // organization. + OrganizationalUnits []string + + // If this is Service Managed, Amazon Managed Grafana automatically creates the IAM + // roles and provisions the permissions that the workspace needs to use Amazon Web + // Services data sources and notification channels. If this is CUSTOMER_MANAGED, + // you manage those roles and permissions yourself. If you are creating this + // workspace in a member account of an organization and that account is not a + // delegated administrator account, and you want the workspace to access data + // sources in other Amazon Web Services accounts in the organization, you must + // choose CUSTOMER_MANAGED. For more information, see Amazon Managed Grafana + // permissions and policies for Amazon Web Services data sources and notification + // channels + // (https://docs.aws.amazon.com/grafana/latest/userguide/AMG-manage-permissions.html) + PermissionType PermissionType + + // The name of the CloudFormation stack set that is used to generate IAM roles to + // be used for this workspace. + StackSetName *string + + // The IAM role that grants permissions to the Amazon Web Services resources that + // the workspace will view data from. This role must already exist. + WorkspaceRoleArn *string + + noSmithyDocumentSerde +} + +// A structure that contains some information about one workspace in the account. +type WorkspaceSummary struct { + + // A structure containing information about the authentication methods used in the + // workspace. + // + // This member is required. + Authentication *AuthenticationSummary + + // The date that the workspace was created. + // + // This member is required. + Created *time.Time + + // The URL endpoint to use to access the Grafana console in the workspace. + // + // This member is required. + Endpoint *string + + // The Grafana version that the workspace is running. + // + // This member is required. + GrafanaVersion *string + + // The unique ID of the workspace. + // + // This member is required. + Id *string + + // The most recent date that the workspace was modified. + // + // This member is required. + Modified *time.Time + + // The current status of the workspace. + // + // This member is required. + Status WorkspaceStatus + + // The customer-entered description of the workspace. + Description *string + + // The name of the workspace. + Name *string + + // The Amazon Web Services notification channels that Amazon Managed Grafana can + // automatically create IAM roles and permissions for, which allows Amazon Managed + // Grafana to use these channels. + NotificationDestinations []NotificationDestinationType + + noSmithyDocumentSerde +} + +type noSmithyDocumentSerde = smithydocument.NoSerde + +// UnknownUnionMember is returned when a union member is returned over the wire, +// but has an unknown tag. +type UnknownUnionMember struct { + Tag string + Value []byte + + noSmithyDocumentSerde +} + +func (*UnknownUnionMember) isIdpMetadata() {} diff --git a/service/grafana/types/types_exported_test.go b/service/grafana/types/types_exported_test.go new file mode 100644 index 00000000000..21ea00c10d9 --- /dev/null +++ b/service/grafana/types/types_exported_test.go @@ -0,0 +1,30 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package types_test + +import ( + "fmt" + "github.com/aws/aws-sdk-go-v2/service/grafana/types" +) + +func ExampleIdpMetadata_outputUsage() { + var union types.IdpMetadata + // type switches can be used to check the union value + switch v := union.(type) { + case *types.IdpMetadataMemberUrl: + _ = v.Value // Value is string + + case *types.IdpMetadataMemberXml: + _ = v.Value // Value is string + + case *types.UnknownUnionMember: + fmt.Println("unknown tag:", v.Tag) + + default: + fmt.Println("union is nil or unknown type") + + } +} + +var _ *string +var _ *string diff --git a/service/grafana/validators.go b/service/grafana/validators.go new file mode 100644 index 00000000000..8eb8aa0e7f7 --- /dev/null +++ b/service/grafana/validators.go @@ -0,0 +1,520 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package grafana + +import ( + "context" + "fmt" + "github.com/aws/aws-sdk-go-v2/service/grafana/types" + smithy "github.com/aws/smithy-go" + "github.com/aws/smithy-go/middleware" +) + +type validateOpAssociateLicense struct { +} + +func (*validateOpAssociateLicense) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpAssociateLicense) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*AssociateLicenseInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpAssociateLicenseInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpCreateWorkspace struct { +} + +func (*validateOpCreateWorkspace) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateWorkspace) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateWorkspaceInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateWorkspaceInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpDeleteWorkspace struct { +} + +func (*validateOpDeleteWorkspace) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteWorkspace) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteWorkspaceInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteWorkspaceInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpDescribeWorkspaceAuthentication struct { +} + +func (*validateOpDescribeWorkspaceAuthentication) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDescribeWorkspaceAuthentication) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DescribeWorkspaceAuthenticationInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDescribeWorkspaceAuthenticationInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpDescribeWorkspace struct { +} + +func (*validateOpDescribeWorkspace) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDescribeWorkspace) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DescribeWorkspaceInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDescribeWorkspaceInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpDisassociateLicense struct { +} + +func (*validateOpDisassociateLicense) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDisassociateLicense) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DisassociateLicenseInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDisassociateLicenseInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpListPermissions struct { +} + +func (*validateOpListPermissions) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListPermissions) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListPermissionsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListPermissionsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpUpdatePermissions struct { +} + +func (*validateOpUpdatePermissions) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdatePermissions) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdatePermissionsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdatePermissionsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpUpdateWorkspaceAuthentication struct { +} + +func (*validateOpUpdateWorkspaceAuthentication) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateWorkspaceAuthentication) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateWorkspaceAuthenticationInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateWorkspaceAuthenticationInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpUpdateWorkspace struct { +} + +func (*validateOpUpdateWorkspace) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateWorkspace) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateWorkspaceInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateWorkspaceInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +func addOpAssociateLicenseValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpAssociateLicense{}, middleware.After) +} + +func addOpCreateWorkspaceValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateWorkspace{}, middleware.After) +} + +func addOpDeleteWorkspaceValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteWorkspace{}, middleware.After) +} + +func addOpDescribeWorkspaceAuthenticationValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDescribeWorkspaceAuthentication{}, middleware.After) +} + +func addOpDescribeWorkspaceValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDescribeWorkspace{}, middleware.After) +} + +func addOpDisassociateLicenseValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDisassociateLicense{}, middleware.After) +} + +func addOpListPermissionsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListPermissions{}, middleware.After) +} + +func addOpUpdatePermissionsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdatePermissions{}, middleware.After) +} + +func addOpUpdateWorkspaceAuthenticationValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateWorkspaceAuthentication{}, middleware.After) +} + +func addOpUpdateWorkspaceValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateWorkspace{}, middleware.After) +} + +func validateSamlConfiguration(v *types.SamlConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "SamlConfiguration"} + if v.IdpMetadata == nil { + invalidParams.Add(smithy.NewErrParamRequired("IdpMetadata")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateUpdateInstruction(v *types.UpdateInstruction) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateInstruction"} + if len(v.Action) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Action")) + } + if len(v.Role) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Role")) + } + if v.Users == nil { + invalidParams.Add(smithy.NewErrParamRequired("Users")) + } else if v.Users != nil { + if err := validateUserList(v.Users); err != nil { + invalidParams.AddNested("Users", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateUpdateInstructionBatch(v []types.UpdateInstruction) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateInstructionBatch"} + for i := range v { + if err := validateUpdateInstruction(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateUser(v *types.User) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "User"} + if v.Id == nil { + invalidParams.Add(smithy.NewErrParamRequired("Id")) + } + if len(v.Type) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Type")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateUserList(v []types.User) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UserList"} + for i := range v { + if err := validateUser(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpAssociateLicenseInput(v *AssociateLicenseInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "AssociateLicenseInput"} + if v.WorkspaceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("WorkspaceId")) + } + if len(v.LicenseType) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("LicenseType")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpCreateWorkspaceInput(v *CreateWorkspaceInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateWorkspaceInput"} + if len(v.AccountAccessType) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("AccountAccessType")) + } + if len(v.PermissionType) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("PermissionType")) + } + if v.AuthenticationProviders == nil { + invalidParams.Add(smithy.NewErrParamRequired("AuthenticationProviders")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpDeleteWorkspaceInput(v *DeleteWorkspaceInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteWorkspaceInput"} + if v.WorkspaceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("WorkspaceId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpDescribeWorkspaceAuthenticationInput(v *DescribeWorkspaceAuthenticationInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DescribeWorkspaceAuthenticationInput"} + if v.WorkspaceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("WorkspaceId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpDescribeWorkspaceInput(v *DescribeWorkspaceInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DescribeWorkspaceInput"} + if v.WorkspaceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("WorkspaceId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpDisassociateLicenseInput(v *DisassociateLicenseInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DisassociateLicenseInput"} + if v.WorkspaceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("WorkspaceId")) + } + if len(v.LicenseType) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("LicenseType")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpListPermissionsInput(v *ListPermissionsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListPermissionsInput"} + if v.WorkspaceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("WorkspaceId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpUpdatePermissionsInput(v *UpdatePermissionsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdatePermissionsInput"} + if v.UpdateInstructionBatch == nil { + invalidParams.Add(smithy.NewErrParamRequired("UpdateInstructionBatch")) + } else if v.UpdateInstructionBatch != nil { + if err := validateUpdateInstructionBatch(v.UpdateInstructionBatch); err != nil { + invalidParams.AddNested("UpdateInstructionBatch", err.(smithy.InvalidParamsError)) + } + } + if v.WorkspaceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("WorkspaceId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpUpdateWorkspaceAuthenticationInput(v *UpdateWorkspaceAuthenticationInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateWorkspaceAuthenticationInput"} + if v.WorkspaceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("WorkspaceId")) + } + if v.AuthenticationProviders == nil { + invalidParams.Add(smithy.NewErrParamRequired("AuthenticationProviders")) + } + if v.SamlConfiguration != nil { + if err := validateSamlConfiguration(v.SamlConfiguration); err != nil { + invalidParams.AddNested("SamlConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpUpdateWorkspaceInput(v *UpdateWorkspaceInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateWorkspaceInput"} + if v.WorkspaceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("WorkspaceId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} diff --git a/service/iotevents/internal/endpoints/endpoints.go b/service/iotevents/internal/endpoints/endpoints.go index 11ce33e1b6a..47841affe39 100644 --- a/service/iotevents/internal/endpoints/endpoints.go +++ b/service/iotevents/internal/endpoints/endpoints.go @@ -65,6 +65,7 @@ var defaultPartitions = endpoints.Partitions{ Endpoints: endpoints.Endpoints{ "ap-northeast-1": endpoints.Endpoint{}, "ap-northeast-2": endpoints.Endpoint{}, + "ap-south-1": endpoints.Endpoint{}, "ap-southeast-1": endpoints.Endpoint{}, "ap-southeast-2": endpoints.Endpoint{}, "eu-central-1": endpoints.Endpoint{}, diff --git a/service/kendra/api_op_CreateDataSource.go b/service/kendra/api_op_CreateDataSource.go index f3771b80968..b99e36456a1 100644 --- a/service/kendra/api_op_CreateDataSource.go +++ b/service/kendra/api_op_CreateDataSource.go @@ -12,12 +12,11 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a data source that you use to with an Amazon Kendra index. You specify a -// name, data source connector type and description for your data source. You also -// specify configuration information such as document metadata (author, source URI, -// and so on) and user context information. CreateDataSource is a synchronous -// operation. The operation returns 200 if the data source was successfully -// created. Otherwise, an exception is raised. +// Creates a data source that you want to use with an Amazon Kendra index. You +// specify a name, data source connector type and description for your data source. +// You also specify configuration information for the data source connector. +// CreateDataSource is a synchronous operation. The operation returns 200 if the +// data source was successfully created. Otherwise, an exception is raised. func (c *Client) CreateDataSource(ctx context.Context, params *CreateDataSourceInput, optFns ...func(*Options)) (*CreateDataSourceOutput, error) { if params == nil { params = &CreateDataSourceInput{} @@ -65,6 +64,13 @@ type CreateDataSourceInput struct { // A description for the data source. Description *string + // The code for a language. This allows you to support a language for all documents + // when creating the data source. English is supported by default. For more + // information on supported languages, including their codes, see Adding documents + // in languages other than English + // (https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html). + LanguageCode *string + // The Amazon Resource Name (ARN) of a role with permission to access the data // source. For more information, see IAM Roles for Amazon Kendra // (https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html). You can't specify diff --git a/service/kendra/api_op_CreateFaq.go b/service/kendra/api_op_CreateFaq.go index da12b5e503b..c43d3274215 100644 --- a/service/kendra/api_op_CreateFaq.go +++ b/service/kendra/api_op_CreateFaq.go @@ -68,6 +68,12 @@ type CreateFaqInput struct { // (https://docs.aws.amazon.com/kendra/latest/dg/in-creating-faq.html). FileFormat types.FaqFileFormat + // The code for a language. This allows you to support a language for the FAQ + // document. English is supported by default. For more information on supported + // languages, including their codes, see Adding documents in languages other than + // English (https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html). + LanguageCode *string + // A list of key-value pairs that identify the FAQ. You can use the tags to // identify and organize your resources and to control access to resources. Tags []types.Tag diff --git a/service/kendra/api_op_CreateIndex.go b/service/kendra/api_op_CreateIndex.go index 3fced63c8be..cd0c7331970 100644 --- a/service/kendra/api_op_CreateIndex.go +++ b/service/kendra/api_op_CreateIndex.go @@ -73,12 +73,19 @@ type CreateIndexInput struct { Tags []types.Tag // The user context policy. ATTRIBUTE_FILTER All indexed content is searchable and - // displayable for all users. If there is an access control list, it is ignored. - // You can filter on user and group attributes. USER_TOKEN Enables SSO and - // token-based user access control. All documents with no access control and all - // documents accessible to the user will be searchable and displayable. + // displayable for all users. If you want to filter search results on user context, + // you can use the attribute filters of _user_id and _group_ids or you can provide + // user and group information in UserContext. USER_TOKEN Enables token-based user + // access control to filter search results on user context. All documents with no + // access control and all documents accessible to the user will be searchable and + // displayable. UserContextPolicy types.UserContextPolicy + // Enables fetching access levels of groups and users from an AWS Single Sign-On + // identity source. To configure this, see UserGroupResolutionConfiguration + // (https://docs.aws.amazon.com/kendra/latest/dg/API_UserGroupResolutionConfiguration.html). + UserGroupResolutionConfiguration *types.UserGroupResolutionConfiguration + // The user token configuration. UserTokenConfigurations []types.UserTokenConfiguration diff --git a/service/kendra/api_op_CreateThesaurus.go b/service/kendra/api_op_CreateThesaurus.go index 279e5e0a48f..8991c6bfdb9 100644 --- a/service/kendra/api_op_CreateThesaurus.go +++ b/service/kendra/api_op_CreateThesaurus.go @@ -54,7 +54,7 @@ type CreateThesaurusInput struct { // A token that you provide to identify the request to create a thesaurus. Multiple // calls to the CreateThesaurus operation with the same client token will create - // only one index. + // only one thesaurus. ClientToken *string // The description for the new thesaurus. diff --git a/service/kendra/api_op_DescribeDataSource.go b/service/kendra/api_op_DescribeDataSource.go index f30ae71ff82..aad606c9c9c 100644 --- a/service/kendra/api_op_DescribeDataSource.go +++ b/service/kendra/api_op_DescribeDataSource.go @@ -66,6 +66,13 @@ type DescribeDataSourceOutput struct { // The identifier of the index that contains the data source. IndexId *string + // The code for a language. This shows a supported language for all documents in + // the data source. English is supported by default. For more information on + // supported languages, including their codes, see Adding documents in languages + // other than English + // (https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html). + LanguageCode *string + // The name that you gave the data source when it was created. Name *string diff --git a/service/kendra/api_op_DescribeFaq.go b/service/kendra/api_op_DescribeFaq.go index 87c71a74ae1..7c4997bc662 100644 --- a/service/kendra/api_op_DescribeFaq.go +++ b/service/kendra/api_op_DescribeFaq.go @@ -64,6 +64,12 @@ type DescribeFaqOutput struct { // The identifier of the index that contains the FAQ. IndexId *string + // The code for a language. This shows a supported language for the FAQ document. + // English is supported by default. For more information on supported languages, + // including their codes, see Adding documents in languages other than English + // (https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html). + LanguageCode *string + // The name that you gave the FAQ when it was created. Name *string diff --git a/service/kendra/api_op_DescribeIndex.go b/service/kendra/api_op_DescribeIndex.go index 3f4aa650e74..be2b4a2fdd4 100644 --- a/service/kendra/api_op_DescribeIndex.go +++ b/service/kendra/api_op_DescribeIndex.go @@ -92,6 +92,10 @@ type DescribeIndexOutput struct { // The user context policy for the Amazon Kendra index. UserContextPolicy types.UserContextPolicy + // Shows whether you have enabled the configuration for fetching access levels of + // groups and users from an AWS Single Sign-On identity source. + UserGroupResolutionConfiguration *types.UserGroupResolutionConfiguration + // The user token configuration for the Amazon Kendra index. UserTokenConfigurations []types.UserTokenConfiguration diff --git a/service/kendra/api_op_DescribeQuerySuggestionsBlockList.go b/service/kendra/api_op_DescribeQuerySuggestionsBlockList.go index 7aee24d580a..3cd0d3061ee 100644 --- a/service/kendra/api_op_DescribeQuerySuggestionsBlockList.go +++ b/service/kendra/api_op_DescribeQuerySuggestionsBlockList.go @@ -46,7 +46,7 @@ type DescribeQuerySuggestionsBlockListInput struct { type DescribeQuerySuggestionsBlockListOutput struct { - // Shows the date-time a block list for query suggestions was last created. + // Shows the date-time a block list for query suggestions was created. CreatedAt *time.Time // Shows the description for the block list. diff --git a/service/kendra/api_op_ListDataSourceSyncJobs.go b/service/kendra/api_op_ListDataSourceSyncJobs.go index bd2ea93ceba..12408c694ec 100644 --- a/service/kendra/api_op_ListDataSourceSyncJobs.go +++ b/service/kendra/api_op_ListDataSourceSyncJobs.go @@ -44,8 +44,9 @@ type ListDataSourceSyncJobsInput struct { // are fewer results in the list, this response contains only the actual results. MaxResults *int32 - // If the result of the previous request to GetDataSourceSyncJobHistory was - // truncated, include the NextToken to fetch the next set of jobs. + // If the previous response was incomplete (because there is more data to + // retrieve), Amazon Kendra returns a pagination token in the response. You can use + // this pagination token to retrieve the next set of jobs. NextToken *string // When specified, the synchronization jobs returned in the list are limited to @@ -64,11 +65,8 @@ type ListDataSourceSyncJobsOutput struct { // A history of synchronization jobs for the data source. History []types.DataSourceSyncJob - // The GetDataSourceSyncJobHistory operation returns a page of vocabularies at a - // time. The maximum size of the page is set by the MaxResults parameter. If there - // are more jobs in the list than the page size, Amazon Kendra returns the NextPage - // token. Include the token in the next request to the GetDataSourceSyncJobHistory - // operation to return in the next page of jobs. + // If the response is truncated, Amazon Kendra returns this token that you can use + // in the subsequent request to retrieve the next set of jobs. NextToken *string // Metadata pertaining to the operation's result. diff --git a/service/kendra/api_op_ListFaqs.go b/service/kendra/api_op_ListFaqs.go index 8c0db9b1e74..4026d3622fe 100644 --- a/service/kendra/api_op_ListFaqs.go +++ b/service/kendra/api_op_ListFaqs.go @@ -38,8 +38,9 @@ type ListFaqsInput struct { // in the list, this response contains only the actual results. MaxResults *int32 - // If the result of the previous request to ListFaqs was truncated, include the - // NextToken to fetch the next set of FAQs. + // If the previous response was incomplete (because there is more data to + // retrieve), Amazon Kendra returns a pagination token in the response. You can use + // this pagination token to retrieve the next set of FAQs. NextToken *string noSmithyDocumentSerde @@ -50,10 +51,8 @@ type ListFaqsOutput struct { // information about the FAQs associated with the specified index. FaqSummaryItems []types.FaqSummary - // The ListFaqs operation returns a page of FAQs at a time. The maximum size of the - // page is set by the MaxResults parameter. If there are more jobs in the list than - // the page size, Amazon Kendra returns the NextPage token. Include the token in - // the next request to the ListFaqs operation to return the next page of FAQs. + // If the response is truncated, Amazon Kendra returns this token that you can use + // in the subsequent request to retrieve the next set of FAQs. NextToken *string // Metadata pertaining to the operation's result. diff --git a/service/kendra/api_op_ListGroupsOlderThanOrderingId.go b/service/kendra/api_op_ListGroupsOlderThanOrderingId.go index fbf9278ef8e..5008c1a9ec5 100644 --- a/service/kendra/api_op_ListGroupsOlderThanOrderingId.go +++ b/service/kendra/api_op_ListGroupsOlderThanOrderingId.go @@ -46,11 +46,14 @@ type ListGroupsOlderThanOrderingIdInput struct { // before a given ordering timestamp identifier. DataSourceId *string - // The maximum results shown for a list of groups that are mapped to users before a - // given ordering or timestamp identifier. + // The maximum number of returned groups that are mapped to users before a given + // ordering or timestamp identifier. MaxResults *int32 - // The next items in the list of groups that go beyond the maximum. + // If the previous response was incomplete (because there is more data to + // retrieve), Amazon Kendra returns a pagination token in the response. You can use + // this pagination token to retrieve the next set of groups that are mapped to + // users before a given ordering or timestamp identifier. NextToken *string noSmithyDocumentSerde @@ -62,7 +65,9 @@ type ListGroupsOlderThanOrderingIdOutput struct { // ordering or timestamp identifier. GroupsSummaries []types.GroupSummary - // The next items in the list of groups that go beyond the maximum. + // If the response is truncated, Amazon Kendra returns this token that you can use + // in the subsequent request to retrieve the next set of groups that are mapped to + // users before a given ordering or timestamp identifier. NextToken *string // Metadata pertaining to the operation's result. diff --git a/service/kendra/api_op_ListThesauri.go b/service/kendra/api_op_ListThesauri.go index 53b50d8cf84..6dda4c5aa33 100644 --- a/service/kendra/api_op_ListThesauri.go +++ b/service/kendra/api_op_ListThesauri.go @@ -52,7 +52,7 @@ type ListThesauriOutput struct { // in the subsequent request to retrieve the next set of thesauri. NextToken *string - // An array of summary information for one or more thesauruses. + // An array of summary information for a thesaurus or multiple thesauri. ThesaurusSummaryItems []types.ThesaurusSummary // Metadata pertaining to the operation's result. diff --git a/service/kendra/api_op_PutPrincipalMapping.go b/service/kendra/api_op_PutPrincipalMapping.go index d032b311dd5..ad1c355908c 100644 --- a/service/kendra/api_op_PutPrincipalMapping.go +++ b/service/kendra/api_op_PutPrincipalMapping.go @@ -11,10 +11,11 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Maps users to their groups. You can also map sub groups to groups. For example, -// the group "Company Intellectual Property Teams" includes sub groups "Research" -// and "Engineering". These sub groups include their own list of users or people -// who work in these teams. Only users who work in research and engineering, and +// Maps users to their groups so that you only need to provide the user ID when you +// issue the query. You can also map sub groups to groups. For example, the group +// "Company Intellectual Property Teams" includes sub groups "Research" and +// "Engineering". These sub groups include their own list of users or people who +// work in these teams. Only users who work in research and engineering, and // therefore belong in the intellectual property group, can see top-secret company // documents in their search results. You map users to their groups when you want // to filter search results for different users based on their group’s access to diff --git a/service/kendra/api_op_Query.go b/service/kendra/api_op_Query.go index 67a7aa760ba..e2fa1ff093c 100644 --- a/service/kendra/api_op_Query.go +++ b/service/kendra/api_op_Query.go @@ -106,7 +106,7 @@ type QueryInput struct { // that Amazon Kendra determines for the result. SortingConfiguration *types.SortingConfiguration - // The user context token. + // The user context token or user and group information. UserContext *types.UserContext // Provides an identifier for a specific user. The VisitorId should be a unique diff --git a/service/kendra/api_op_UpdateDataSource.go b/service/kendra/api_op_UpdateDataSource.go index 84da83a78bc..00210bae312 100644 --- a/service/kendra/api_op_UpdateDataSource.go +++ b/service/kendra/api_op_UpdateDataSource.go @@ -45,6 +45,13 @@ type UpdateDataSourceInput struct { // The new description for the data source. Description *string + // The code for a language. This allows you to support a language for all documents + // when updating the data source. English is supported by default. For more + // information on supported languages, including their codes, see Adding documents + // in languages other than English + // (https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html). + LanguageCode *string + // The name of the data source to update. The name of the data source can't be // updated. To rename a data source you must delete the data source and re-create // it. diff --git a/service/kendra/api_op_UpdateIndex.go b/service/kendra/api_op_UpdateIndex.go index 674578d766d..6aab0154583 100644 --- a/service/kendra/api_op_UpdateIndex.go +++ b/service/kendra/api_op_UpdateIndex.go @@ -53,9 +53,14 @@ type UpdateIndexInput struct { // CloudWatch logs. RoleArn *string - // The user user token context policy. + // The user context policy. UserContextPolicy types.UserContextPolicy + // Enables fetching access levels of groups and users from an AWS Single Sign-On + // identity source. To configure this, see UserGroupResolutionConfiguration + // (https://docs.aws.amazon.com/kendra/latest/dg/API_UserGroupResolutionConfiguration.html). + UserGroupResolutionConfiguration *types.UserGroupResolutionConfiguration + // The user token configuration. UserTokenConfigurations []types.UserTokenConfiguration diff --git a/service/kendra/deserializers.go b/service/kendra/deserializers.go index c11e85d637f..1efd0e239d7 100644 --- a/service/kendra/deserializers.go +++ b/service/kendra/deserializers.go @@ -7285,6 +7285,15 @@ func awsAwsjson11_deserializeDocumentDataSourceSummary(v **types.DataSourceSumma sv.Id = ptr.String(jtv) } + case "LanguageCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected LanguageCode to be of type string, got %T instead", value) + } + sv.LanguageCode = ptr.String(jtv) + } + case "Name": if value != nil { jtv, ok := value.(string) @@ -8473,6 +8482,15 @@ func awsAwsjson11_deserializeDocumentFaqSummary(v **types.FaqSummary, value inte sv.Id = ptr.String(jtv) } + case "LanguageCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected LanguageCode to be of type string, got %T instead", value) + } + sv.LanguageCode = ptr.String(jtv) + } + case "Name": if value != nil { jtv, ok := value.(string) @@ -12241,6 +12259,46 @@ func awsAwsjson11_deserializeDocumentUrls(v **types.Urls, value interface{}) err return nil } +func awsAwsjson11_deserializeDocumentUserGroupResolutionConfiguration(v **types.UserGroupResolutionConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.UserGroupResolutionConfiguration + if *v == nil { + sv = &types.UserGroupResolutionConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "UserGroupResolutionMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected UserGroupResolutionMode to be of type string, got %T instead", value) + } + sv.UserGroupResolutionMode = types.UserGroupResolutionMode(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentUserTokenConfiguration(v **types.UserTokenConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -12990,6 +13048,15 @@ func awsAwsjson11_deserializeOpDocumentDescribeDataSourceOutput(v **DescribeData sv.IndexId = ptr.String(jtv) } + case "LanguageCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected LanguageCode to be of type string, got %T instead", value) + } + sv.LanguageCode = ptr.String(jtv) + } + case "Name": if value != nil { jtv, ok := value.(string) @@ -13143,6 +13210,15 @@ func awsAwsjson11_deserializeOpDocumentDescribeFaqOutput(v **DescribeFaqOutput, sv.IndexId = ptr.String(jtv) } + case "LanguageCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected LanguageCode to be of type string, got %T instead", value) + } + sv.LanguageCode = ptr.String(jtv) + } + case "Name": if value != nil { jtv, ok := value.(string) @@ -13346,6 +13422,11 @@ func awsAwsjson11_deserializeOpDocumentDescribeIndexOutput(v **DescribeIndexOutp sv.UserContextPolicy = types.UserContextPolicy(jtv) } + case "UserGroupResolutionConfiguration": + if err := awsAwsjson11_deserializeDocumentUserGroupResolutionConfiguration(&sv.UserGroupResolutionConfiguration, value); err != nil { + return err + } + case "UserTokenConfigurations": if err := awsAwsjson11_deserializeDocumentUserTokenConfigurationList(&sv.UserTokenConfigurations, value); err != nil { return err diff --git a/service/kendra/internal/endpoints/endpoints.go b/service/kendra/internal/endpoints/endpoints.go index baf3bceb07b..91e72667faf 100644 --- a/service/kendra/internal/endpoints/endpoints.go +++ b/service/kendra/internal/endpoints/endpoints.go @@ -62,6 +62,33 @@ var defaultPartitions = endpoints.Partitions{ }, RegionRegex: partitionRegexp.Aws, IsRegionalized: true, + Endpoints: endpoints.Endpoints{ + "ap-southeast-1": endpoints.Endpoint{}, + "ap-southeast-2": endpoints.Endpoint{}, + "ca-central-1": endpoints.Endpoint{}, + "eu-west-1": endpoints.Endpoint{}, + "fips-us-east-1": endpoints.Endpoint{ + Hostname: "kendra-fips.us-east-1.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoints.Endpoint{ + Hostname: "kendra-fips.us-east-2.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-2": endpoints.Endpoint{ + Hostname: "kendra-fips.us-west-2.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-west-2", + }, + }, + "us-east-1": endpoints.Endpoint{}, + "us-east-2": endpoints.Endpoint{}, + "us-west-2": endpoints.Endpoint{}, + }, }, { ID: "aws-cn", diff --git a/service/kendra/serializers.go b/service/kendra/serializers.go index 7e778673b0b..b2ea1bf5729 100644 --- a/service/kendra/serializers.go +++ b/service/kendra/serializers.go @@ -4466,6 +4466,18 @@ func awsAwsjson11_serializeDocumentUserContext(v *types.UserContext, value smith return nil } +func awsAwsjson11_serializeDocumentUserGroupResolutionConfiguration(v *types.UserGroupResolutionConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.UserGroupResolutionMode) > 0 { + ok := object.Key("UserGroupResolutionMode") + ok.String(string(v.UserGroupResolutionMode)) + } + + return nil +} + func awsAwsjson11_serializeDocumentUserTokenConfiguration(v *types.UserTokenConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -4736,6 +4748,11 @@ func awsAwsjson11_serializeOpDocumentCreateDataSourceInput(v *CreateDataSourceIn ok.String(*v.IndexId) } + if v.LanguageCode != nil { + ok := object.Key("LanguageCode") + ok.String(*v.LanguageCode) + } + if v.Name != nil { ok := object.Key("Name") ok.String(*v.Name) @@ -4790,6 +4807,11 @@ func awsAwsjson11_serializeOpDocumentCreateFaqInput(v *CreateFaqInput, value smi ok.String(*v.IndexId) } + if v.LanguageCode != nil { + ok := object.Key("LanguageCode") + ok.String(*v.LanguageCode) + } + if v.Name != nil { ok := object.Key("Name") ok.String(*v.Name) @@ -4865,6 +4887,13 @@ func awsAwsjson11_serializeOpDocumentCreateIndexInput(v *CreateIndexInput, value ok.String(string(v.UserContextPolicy)) } + if v.UserGroupResolutionConfiguration != nil { + ok := object.Key("UserGroupResolutionConfiguration") + if err := awsAwsjson11_serializeDocumentUserGroupResolutionConfiguration(v.UserGroupResolutionConfiguration, ok); err != nil { + return err + } + } + if v.UserTokenConfigurations != nil { ok := object.Key("UserTokenConfigurations") if err := awsAwsjson11_serializeDocumentUserTokenConfigurationList(v.UserTokenConfigurations, ok); err != nil { @@ -5645,6 +5674,11 @@ func awsAwsjson11_serializeOpDocumentUpdateDataSourceInput(v *UpdateDataSourceIn ok.String(*v.IndexId) } + if v.LanguageCode != nil { + ok := object.Key("LanguageCode") + ok.String(*v.LanguageCode) + } + if v.Name != nil { ok := object.Key("Name") ok.String(*v.Name) @@ -5706,6 +5740,13 @@ func awsAwsjson11_serializeOpDocumentUpdateIndexInput(v *UpdateIndexInput, value ok.String(string(v.UserContextPolicy)) } + if v.UserGroupResolutionConfiguration != nil { + ok := object.Key("UserGroupResolutionConfiguration") + if err := awsAwsjson11_serializeDocumentUserGroupResolutionConfiguration(v.UserGroupResolutionConfiguration, ok); err != nil { + return err + } + } + if v.UserTokenConfigurations != nil { ok := object.Key("UserTokenConfigurations") if err := awsAwsjson11_serializeDocumentUserTokenConfigurationList(v.UserTokenConfigurations, ok); err != nil { diff --git a/service/kendra/types/enums.go b/service/kendra/types/enums.go index e086d54c57a..5d4d801b3f9 100644 --- a/service/kendra/types/enums.go +++ b/service/kendra/types/enums.go @@ -780,10 +780,11 @@ type ScoreConfidence string // Enum values for ScoreConfidence const ( - ScoreConfidenceVeryHigh ScoreConfidence = "VERY_HIGH" - ScoreConfidenceHigh ScoreConfidence = "HIGH" - ScoreConfidenceMedium ScoreConfidence = "MEDIUM" - ScoreConfidenceLow ScoreConfidence = "LOW" + ScoreConfidenceVeryHigh ScoreConfidence = "VERY_HIGH" + ScoreConfidenceHigh ScoreConfidence = "HIGH" + ScoreConfidenceMedium ScoreConfidence = "MEDIUM" + ScoreConfidenceLow ScoreConfidence = "LOW" + ScoreConfidenceNotAvailable ScoreConfidence = "NOT_AVAILABLE" ) // Values returns all known values for ScoreConfidence. Note that this can be @@ -795,6 +796,7 @@ func (ScoreConfidence) Values() []ScoreConfidence { "HIGH", "MEDIUM", "LOW", + "NOT_AVAILABLE", } } @@ -916,6 +918,24 @@ func (UserContextPolicy) Values() []UserContextPolicy { } } +type UserGroupResolutionMode string + +// Enum values for UserGroupResolutionMode +const ( + UserGroupResolutionModeAwsSso UserGroupResolutionMode = "AWS_SSO" + UserGroupResolutionModeNone UserGroupResolutionMode = "NONE" +) + +// Values returns all known values for UserGroupResolutionMode. Note that this can +// be expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (UserGroupResolutionMode) Values() []UserGroupResolutionMode { + return []UserGroupResolutionMode{ + "AWS_SSO", + "NONE", + } +} + type WebCrawlerMode string // Enum values for WebCrawlerMode diff --git a/service/kendra/types/types.go b/service/kendra/types/types.go index 582772d90fa..558a30a4448 100644 --- a/service/kendra/types/types.go +++ b/service/kendra/types/types.go @@ -69,9 +69,9 @@ type AdditionalResultAttributeValue struct { // // If you use more than 2 layers, you // receive a ValidationException exception with the message "AttributeFilter cannot -// have a depth of more than 2." If you use more than 10 attribute filters, you -// receive a ValidationException exception with the message "AttributeFilter cannot -// have a length of more than 10". +// have a depth of more than 2." If you use more than 10 attribute filters in a +// given list for AndAllFilters or OrAllFilters, you receive a ValidationException +// with the message "AttributeFilter cannot have a length of more than 10". type AttributeFilter struct { // Performs a logical AND operation on all supplied filters. @@ -89,19 +89,19 @@ type AttributeFilter struct { EqualsTo *DocumentAttribute // Performs a greater than operation on two document attributes. Use with a - // document attribute of type Integer or Long. + // document attribute of type Date or Long. GreaterThan *DocumentAttribute // Performs a greater or equals than operation on two document attributes. Use with - // a document attribute of type Integer or Long. + // a document attribute of type Date or Long. GreaterThanOrEquals *DocumentAttribute // Performs a less than operation on two document attributes. Use with a document - // attribute of type Integer or Long. + // attribute of type Date or Long. LessThan *DocumentAttribute // Performs a less than or equals operation on two document attributes. Use with a - // document attribute of type Integer or Long. + // document attribute of type Date or Long. LessThanOrEquals *DocumentAttribute // Performs a logical NOT operation on all supplied filters. @@ -639,6 +639,13 @@ type DataSourceSummary struct { // The unique identifier for the data source. Id *string + // The code for a language. This shows a supported language for all documents in + // the data source. English is supported by default. For more information on + // supported languages, including their codes, see Adding documents in languages + // other than English + // (https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html). + LanguageCode *string + // The name of the data source. Name *string @@ -1040,6 +1047,13 @@ type FaqSummary struct { // The unique identifier of the FAQ. Id *string + // The code for a language. This shows a supported language for the FAQ document as + // part of the summary information for FAQs. English is supported by default. For + // more information on supported languages, including their codes, see Adding + // documents in languages other than English + // (https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html). + LanguageCode *string + // The name that you assigned the FAQ when you created or updated the FAQ. Name *string @@ -1120,7 +1134,12 @@ type GroupMembers struct { // If you have more than 1000 users and/or sub groups for a single group, you need // to provide the path to the S3 file that lists your users and sub groups for a // group. Your sub groups can contain more than 1000 users, but the list of sub - // groups that belong to a group (and/or users) must be no more than 1000. + // groups that belong to a group (and/or users) must be no more than 1000. You can + // download this example S3 file + // (https://docs.aws.amazon.com/kendra/latest/dg/samples/group_members.zip) that + // uses the correct format for listing group members. Note, dataSourceId is + // optional. The value of type for a group is always GROUP and for a user it is + // always USER. S3PathforGroupMembers *S3Path noSmithyDocumentSerde @@ -2332,7 +2351,7 @@ type TextWithHighlights struct { noSmithyDocumentSerde } -// An array of summary information for one or more thesauruses. +// An array of summary information for a thesaurus or multiple thesauri. type ThesaurusSummary struct { // The Unix datetime that the thesaurus was created. @@ -2365,11 +2384,14 @@ type TimeRange struct { noSmithyDocumentSerde } -// Provides the configuration information of the URLs to crawl. When selecting -// websites to index, you must adhere to the Amazon Acceptable Use Policy -// (https://aws.amazon.com/aup/) and all other Amazon terms. Remember that you must -// only use the Amazon Kendra web crawler to index your own webpages, or webpages -// that you have authorization to index. +// Provides the configuration information of the URLs to crawl. You can only crawl +// websites that use the secure communication protocol, Hypertext Transfer Protocol +// Secure (HTTPS). If you receive an error when crawling a website, it could be +// that the website is blocked from crawling. When selecting websites to index, you +// must adhere to the Amazon Acceptable Use Policy (https://aws.amazon.com/aup/) +// and all other Amazon terms. Remember that you must only use the Amazon Kendra +// web crawler to index your own webpages, or webpages that you have authorization +// to index. type Urls struct { // Provides the configuration of the seed or starting point URLs of the websites @@ -2386,14 +2408,14 @@ type Urls struct { noSmithyDocumentSerde } -// Provides information about the user context for a Amazon Kendra index. This is +// Provides information about the user context for an Amazon Kendra index. This is // used for filtering search results for different users based on their access to // documents. You provide one of the following: // // * User token // // * User ID, the -// groups the user belongs to, and the data sources the groups can access +// groups the user belongs to, and any data sources the groups can access. // // If you // provide both, an exception is thrown. @@ -2418,6 +2440,31 @@ type UserContext struct { noSmithyDocumentSerde } +// Provides the configuration information to fetch access levels of groups and +// users from an AWS Single Sign-On identity source. This is useful for setting up +// user context filtering, where Amazon Kendra filters search results for different +// users based on their group's access to documents. You can also map your users to +// their groups for user context filtering using the PutPrincipalMapping operation +// (https://docs.aws.amazon.com/latest/dg/API_PutPrincipalMapping.html). To set up +// an AWS SSO identity source in the console to use with Amazon Kendra, see Getting +// started with an AWS SSO identity source +// (https://docs.aws.amazon.com/kendra/latest/dg/getting-started-aws-sso.html). You +// must also grant the required permissions to use AWS SSO with Amazon Kendra. For +// more information, see IAM roles for AWS Single Sign-On +// (https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html#iam-roles-aws-sso). +type UserGroupResolutionConfiguration struct { + + // The identity store provider (mode) you want to use to fetch access levels of + // groups and users. AWS Single Sign-On is currently the only available mode. Your + // users and groups must exist in an AWS SSO identity source in order to use this + // mode. + // + // This member is required. + UserGroupResolutionMode UserGroupResolutionMode + + noSmithyDocumentSerde +} + // Provides configuration information for a token configuration. type UserTokenConfiguration struct { @@ -2435,11 +2482,14 @@ type WebCrawlerConfiguration struct { // Specifies the seed or starting point URLs of the websites or the sitemap URLs of // the websites you want to crawl. You can include website subdomains. You can list - // up to 100 seed URLs and up to three sitemap URLs. When selecting websites to - // index, you must adhere to the Amazon Acceptable Use Policy - // (https://aws.amazon.com/aup/) and all other Amazon terms. Remember that you must - // only use the Amazon Kendra web crawler to index your own webpages, or webpages - // that you have authorization to index. + // up to 100 seed URLs and up to three sitemap URLs. You can only crawl websites + // that use the secure communication protocol, Hypertext Transfer Protocol Secure + // (HTTPS). If you receive an error when crawling a website, it could be that the + // website is blocked from crawling. When selecting websites to index, you must + // adhere to the Amazon Acceptable Use Policy (https://aws.amazon.com/aup/) and all + // other Amazon terms. Remember that you must only use the Amazon Kendra web + // crawler to index your own webpages, or webpages that you have authorization to + // index. // // This member is required. Urls *Urls diff --git a/service/kendra/validators.go b/service/kendra/validators.go index 1f7538bd125..f31e51c65f6 100644 --- a/service/kendra/validators.go +++ b/service/kendra/validators.go @@ -2477,6 +2477,21 @@ func validateUserContext(v *types.UserContext) error { } } +func validateUserGroupResolutionConfiguration(v *types.UserGroupResolutionConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UserGroupResolutionConfiguration"} + if len(v.UserGroupResolutionMode) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("UserGroupResolutionMode")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateUserTokenConfiguration(v *types.UserTokenConfiguration) error { if v == nil { return nil @@ -2732,6 +2747,11 @@ func validateOpCreateIndexInput(v *CreateIndexInput) error { invalidParams.AddNested("UserTokenConfigurations", err.(smithy.InvalidParamsError)) } } + if v.UserGroupResolutionConfiguration != nil { + if err := validateUserGroupResolutionConfiguration(v.UserGroupResolutionConfiguration); err != nil { + invalidParams.AddNested("UserGroupResolutionConfiguration", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -3372,6 +3392,11 @@ func validateOpUpdateIndexInput(v *UpdateIndexInput) error { invalidParams.AddNested("UserTokenConfigurations", err.(smithy.InvalidParamsError)) } } + if v.UserGroupResolutionConfiguration != nil { + if err := validateUserGroupResolutionConfiguration(v.UserGroupResolutionConfiguration); err != nil { + invalidParams.AddNested("UserGroupResolutionConfiguration", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { diff --git a/service/kms/api_op_ListAliases.go b/service/kms/api_op_ListAliases.go index 9a1a1dd56eb..c982a894b9f 100644 --- a/service/kms/api_op_ListAliases.go +++ b/service/kms/api_op_ListAliases.go @@ -31,9 +31,7 @@ import ( // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) // (IAM policy) For details, see Controlling access to aliases // (https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access) -// in the Key Management Service Developer Guide. -// -// Related operations: +// in the Key Management Service Developer Guide. Related operations: // // * // CreateAlias diff --git a/service/kms/api_op_UpdateCustomKeyStore.go b/service/kms/api_op_UpdateCustomKeyStore.go index 1e7f24cf5ab..c72d483c3d9 100644 --- a/service/kms/api_op_UpdateCustomKeyStore.go +++ b/service/kms/api_op_UpdateCustomKeyStore.go @@ -16,8 +16,9 @@ import ( // key store that is disconnected. To disconnect the custom key store, use // DisconnectCustomKeyStore. To reconnect the custom key store after the update // completes, use ConnectCustomKeyStore. To find the connection state of a custom -// key store, use the DescribeCustomKeyStores operation. Use the parameters of -// UpdateCustomKeyStore to edit your keystore settings. +// key store, use the DescribeCustomKeyStores operation. The CustomKeyStoreId +// parameter is required in all commands. Use the other parameters of +// UpdateCustomKeyStore to edit your key store settings. // // * Use the // NewCustomKeyStoreName parameter to change the friendly name of the custom key diff --git a/service/kms/doc.go b/service/kms/doc.go index d1b1b6e0900..ef47dd8a657 100644 --- a/service/kms/doc.go +++ b/service/kms/doc.go @@ -17,9 +17,7 @@ // of tasks such as signing requests (see below), managing errors, and retrying // requests automatically. For more information about the Amazon Web Services SDKs, // including how to download and install them, see Tools for Amazon Web Services -// (http://aws.amazon.com/tools/). -// -// We recommend that you use the Amazon Web +// (http://aws.amazon.com/tools/). We recommend that you use the Amazon Web // Services SDKs to make programmatic API calls to KMS. Clients must support TLS // (Transport Layer Security) 1.0. We recommend TLS 1.2. Clients must also support // cipher suites with Perfect Forward Secrecy (PFS) such as Ephemeral diff --git a/service/lexmodelsv2/api_op_CreateBotLocale.go b/service/lexmodelsv2/api_op_CreateBotLocale.go index 849cb690815..6c0455815a5 100644 --- a/service/lexmodelsv2/api_op_CreateBotLocale.go +++ b/service/lexmodelsv2/api_op_CreateBotLocale.go @@ -59,8 +59,8 @@ type CreateBotLocaleInput struct { // are configured for the bot. For example, suppose a bot is configured with the // confidence threshold of 0.80 and the AMAZON.FallbackIntent. Amazon Lex returns // three alternative intents with the following confidence scores: IntentA (0.70), - // IntentB (0.60), IntentC (0.50). The response from the PostText operation would - // be: + // IntentB (0.60), IntentC (0.50). The response from the RecognizeText operation + // would be: // // * AMAZON.FallbackIntent // diff --git a/service/lexmodelsv2/api_op_DescribeImport.go b/service/lexmodelsv2/api_op_DescribeImport.go index 23f3704faa8..741ffe2802a 100644 --- a/service/lexmodelsv2/api_op_DescribeImport.go +++ b/service/lexmodelsv2/api_op_DescribeImport.go @@ -48,7 +48,7 @@ type DescribeImportOutput struct { CreationDateTime *time.Time // If the importStatus field is Failed, this provides one or more reasons for the - // failture. + // failure. FailureReasons []string // The unique identifier of the described import. diff --git a/service/lexmodelsv2/api_op_ListExports.go b/service/lexmodelsv2/api_op_ListExports.go index 3a78b7dab7c..c9ad7db0a6d 100644 --- a/service/lexmodelsv2/api_op_ListExports.go +++ b/service/lexmodelsv2/api_op_ListExports.go @@ -47,7 +47,7 @@ type ListExportsInput struct { // returned. MaxResults *int32 - // If the response from the ListExports operation contans more results that + // If the response from the ListExports operation contains more results that // specified in the maxResults parameter, a token is returned in the response. Use // that token in the nextToken parameter to return the next page of results. NextToken *string diff --git a/service/lexmodelsv2/deserializers.go b/service/lexmodelsv2/deserializers.go index 126575b6651..86a4d6f21f5 100644 --- a/service/lexmodelsv2/deserializers.go +++ b/service/lexmodelsv2/deserializers.go @@ -14356,6 +14356,195 @@ func awsRestjson1_deserializeDocumentFulfillmentCodeHookSettings(v **types.Fulfi sv.Enabled = jtv } + case "fulfillmentUpdatesSpecification": + if err := awsRestjson1_deserializeDocumentFulfillmentUpdatesSpecification(&sv.FulfillmentUpdatesSpecification, value); err != nil { + return err + } + + case "postFulfillmentStatusSpecification": + if err := awsRestjson1_deserializeDocumentPostFulfillmentStatusSpecification(&sv.PostFulfillmentStatusSpecification, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentFulfillmentStartResponseSpecification(v **types.FulfillmentStartResponseSpecification, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.FulfillmentStartResponseSpecification + if *v == nil { + sv = &types.FulfillmentStartResponseSpecification{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "allowInterrupt": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected BoxedBoolean to be of type *bool, got %T instead", value) + } + sv.AllowInterrupt = ptr.Bool(jtv) + } + + case "delayInSeconds": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected FulfillmentStartResponseDelay to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.DelayInSeconds = ptr.Int32(int32(i64)) + } + + case "messageGroups": + if err := awsRestjson1_deserializeDocumentMessageGroupsList(&sv.MessageGroups, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentFulfillmentUpdateResponseSpecification(v **types.FulfillmentUpdateResponseSpecification, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.FulfillmentUpdateResponseSpecification + if *v == nil { + sv = &types.FulfillmentUpdateResponseSpecification{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "allowInterrupt": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected BoxedBoolean to be of type *bool, got %T instead", value) + } + sv.AllowInterrupt = ptr.Bool(jtv) + } + + case "frequencyInSeconds": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected FulfillmentUpdateResponseFrequency to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.FrequencyInSeconds = ptr.Int32(int32(i64)) + } + + case "messageGroups": + if err := awsRestjson1_deserializeDocumentMessageGroupsList(&sv.MessageGroups, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentFulfillmentUpdatesSpecification(v **types.FulfillmentUpdatesSpecification, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.FulfillmentUpdatesSpecification + if *v == nil { + sv = &types.FulfillmentUpdatesSpecification{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "active": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected BoxedBoolean to be of type *bool, got %T instead", value) + } + sv.Active = ptr.Bool(jtv) + } + + case "startResponse": + if err := awsRestjson1_deserializeDocumentFulfillmentStartResponseSpecification(&sv.StartResponse, value); err != nil { + return err + } + + case "timeoutInSeconds": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected FulfillmentTimeout to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.TimeoutInSeconds = ptr.Int32(int32(i64)) + } + + case "updateResponse": + if err := awsRestjson1_deserializeDocumentFulfillmentUpdateResponseSpecification(&sv.UpdateResponse, value); err != nil { + return err + } + default: _, _ = key, value @@ -15434,6 +15623,52 @@ func awsRestjson1_deserializeDocumentPlainTextMessage(v **types.PlainTextMessage return nil } +func awsRestjson1_deserializeDocumentPostFulfillmentStatusSpecification(v **types.PostFulfillmentStatusSpecification, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.PostFulfillmentStatusSpecification + if *v == nil { + sv = &types.PostFulfillmentStatusSpecification{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "failureResponse": + if err := awsRestjson1_deserializeDocumentResponseSpecification(&sv.FailureResponse, value); err != nil { + return err + } + + case "successResponse": + if err := awsRestjson1_deserializeDocumentResponseSpecification(&sv.SuccessResponse, value); err != nil { + return err + } + + case "timeoutResponse": + if err := awsRestjson1_deserializeDocumentResponseSpecification(&sv.TimeoutResponse, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentPreconditionFailedException(v **types.PreconditionFailedException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/lexmodelsv2/serializers.go b/service/lexmodelsv2/serializers.go index 16d90e5602d..2a602b88e83 100644 --- a/service/lexmodelsv2/serializers.go +++ b/service/lexmodelsv2/serializers.go @@ -6027,6 +6027,99 @@ func awsRestjson1_serializeDocumentFulfillmentCodeHookSettings(v *types.Fulfillm ok.Boolean(v.Enabled) } + if v.FulfillmentUpdatesSpecification != nil { + ok := object.Key("fulfillmentUpdatesSpecification") + if err := awsRestjson1_serializeDocumentFulfillmentUpdatesSpecification(v.FulfillmentUpdatesSpecification, ok); err != nil { + return err + } + } + + if v.PostFulfillmentStatusSpecification != nil { + ok := object.Key("postFulfillmentStatusSpecification") + if err := awsRestjson1_serializeDocumentPostFulfillmentStatusSpecification(v.PostFulfillmentStatusSpecification, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentFulfillmentStartResponseSpecification(v *types.FulfillmentStartResponseSpecification, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AllowInterrupt != nil { + ok := object.Key("allowInterrupt") + ok.Boolean(*v.AllowInterrupt) + } + + if v.DelayInSeconds != nil { + ok := object.Key("delayInSeconds") + ok.Integer(*v.DelayInSeconds) + } + + if v.MessageGroups != nil { + ok := object.Key("messageGroups") + if err := awsRestjson1_serializeDocumentMessageGroupsList(v.MessageGroups, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentFulfillmentUpdateResponseSpecification(v *types.FulfillmentUpdateResponseSpecification, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AllowInterrupt != nil { + ok := object.Key("allowInterrupt") + ok.Boolean(*v.AllowInterrupt) + } + + if v.FrequencyInSeconds != nil { + ok := object.Key("frequencyInSeconds") + ok.Integer(*v.FrequencyInSeconds) + } + + if v.MessageGroups != nil { + ok := object.Key("messageGroups") + if err := awsRestjson1_serializeDocumentMessageGroupsList(v.MessageGroups, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentFulfillmentUpdatesSpecification(v *types.FulfillmentUpdatesSpecification, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Active != nil { + ok := object.Key("active") + ok.Boolean(*v.Active) + } + + if v.StartResponse != nil { + ok := object.Key("startResponse") + if err := awsRestjson1_serializeDocumentFulfillmentStartResponseSpecification(v.StartResponse, ok); err != nil { + return err + } + } + + if v.TimeoutInSeconds != nil { + ok := object.Key("timeoutInSeconds") + ok.Integer(*v.TimeoutInSeconds) + } + + if v.UpdateResponse != nil { + ok := object.Key("updateResponse") + if err := awsRestjson1_serializeDocumentFulfillmentUpdateResponseSpecification(v.UpdateResponse, ok); err != nil { + return err + } + } + return nil } @@ -6461,6 +6554,34 @@ func awsRestjson1_serializeDocumentPlainTextMessage(v *types.PlainTextMessage, v return nil } +func awsRestjson1_serializeDocumentPostFulfillmentStatusSpecification(v *types.PostFulfillmentStatusSpecification, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.FailureResponse != nil { + ok := object.Key("failureResponse") + if err := awsRestjson1_serializeDocumentResponseSpecification(v.FailureResponse, ok); err != nil { + return err + } + } + + if v.SuccessResponse != nil { + ok := object.Key("successResponse") + if err := awsRestjson1_serializeDocumentResponseSpecification(v.SuccessResponse, ok); err != nil { + return err + } + } + + if v.TimeoutResponse != nil { + ok := object.Key("timeoutResponse") + if err := awsRestjson1_serializeDocumentResponseSpecification(v.TimeoutResponse, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentPrincipal(v *types.Principal, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/lexmodelsv2/types/types.go b/service/lexmodelsv2/types/types.go index 0fdc9ab7051..bc00e85106d 100644 --- a/service/lexmodelsv2/types/types.go +++ b/service/lexmodelsv2/types/types.go @@ -601,7 +601,7 @@ type CloudWatchLogGroupLogDestination struct { // conversation. type CodeHookSpecification struct { - // Specifies a Lambda function that verifies requests to a bot or fulfilles the + // Specifies a Lambda function that verifies requests to a bot or fulfills the // user's request to a bot. // // This member is required. @@ -680,7 +680,7 @@ type DialogCodeHookSettings struct { noSmithyDocumentSerde } -// Filtes the response form the operation +// Filters the response form the operation type ExportFilter struct { // The name of the field to use for filtering. @@ -696,7 +696,7 @@ type ExportFilter struct { // This member is required. Operator ExportFilterOperator - // The values to use to fileter the response. + // The values to use to filter the response. // // This member is required. Values []string @@ -768,6 +768,89 @@ type FulfillmentCodeHookSettings struct { // This member is required. Enabled bool + // Provides settings for update messages sent to the user for long-running Lambda + // fulfillment functions. Fulfillment updates can be used only with streaming + // conversations. + FulfillmentUpdatesSpecification *FulfillmentUpdatesSpecification + + // Provides settings for messages sent to the user for after the Lambda fulfillment + // function completes. Post-fulfillment messages can be sent for both streaming and + // non-streaming conversations. + PostFulfillmentStatusSpecification *PostFulfillmentStatusSpecification + + noSmithyDocumentSerde +} + +// Provides settings for a message that is sent to the user when a fulfillment +// Lambda function starts running. +type FulfillmentStartResponseSpecification struct { + + // The delay between when the Lambda fulfillment function starts running and the + // start message is played. If the Lambda function returns before the delay is + // over, the start message isn't played. + // + // This member is required. + DelayInSeconds *int32 + + // One to 5 message groups that contain start messages. Amazon Lex chooses one of + // the messages to play to the user. + // + // This member is required. + MessageGroups []MessageGroup + + // Determines whether the user can interrupt the start message while it is playing. + AllowInterrupt *bool + + noSmithyDocumentSerde +} + +// Provides settings for a message that is sent periodically to the user while a +// fulfillment Lambda function is running. +type FulfillmentUpdateResponseSpecification struct { + + // The frequency that a message is sent to the user. When the period ends, Amazon + // Lex chooses a message from the message groups and plays it to the user. If the + // fulfillment Lambda returns before the first period ends, an update message is + // not played to the user. + // + // This member is required. + FrequencyInSeconds *int32 + + // One to 5 message groups that contain update messages. Amazon Lex chooses one of + // the messages to play to the user. + // + // This member is required. + MessageGroups []MessageGroup + + // Determines whether the user can interrupt an update message while it is playing. + AllowInterrupt *bool + + noSmithyDocumentSerde +} + +// Provides information for updating the user on the progress of fulfilling an +// intent. +type FulfillmentUpdatesSpecification struct { + + // Determines whether fulfillment updates are sent to the user. When this field is + // true, updates are sent. If the active field is set to true, the startResponse, + // updateResponse, and timeoutInSeconds fields are required. + // + // This member is required. + Active *bool + + // Provides configuration information for the message sent to users when the + // fulfillment Lambda functions starts running. + StartResponse *FulfillmentStartResponseSpecification + + // The length of time that the fulfillment Lambda function should run before it + // times out. + TimeoutInSeconds *int32 + + // Provides configuration information for messages sent periodically to the user + // while the fulfillment Lambda function is running. + UpdateResponse *FulfillmentUpdateResponseSpecification + noSmithyDocumentSerde } @@ -824,7 +907,7 @@ type ImportFilter struct { } // Provides information about the bot or bot locale that you want to import. You -// can sepcifiy the botImportSpecification or the botLocaleImportSpecification, but +// can specify the botImportSpecification or the botLocaleImportSpecification, but // not both. type ImportResourceSpecification struct { @@ -904,8 +987,8 @@ type IntentClosingSetting struct { ClosingResponse *ResponseSpecification // Specifies whether an intent's closing response is used. When this field is - // false, the closing response isn't sent to the user and no closing input from the - // user is used. If the active field isn't specified, the default is true. + // false, the closing response isn't sent to the user. If the active field isn't + // specified, the default is true. Active *bool noSmithyDocumentSerde @@ -933,9 +1016,8 @@ type IntentConfirmationSetting struct { PromptSpecification *PromptSpecification // Specifies whether the intent's confirmation is sent to the user. When this field - // is false, confirmation and declination responses aren't sent and processing - // continues as if the responses aren't present. If the active field isn't - // specified, the default is true. + // is false, confirmation and declination responses aren't sent. If the active + // field isn't specified, the default is true. Active *bool noSmithyDocumentSerde @@ -1034,7 +1116,7 @@ type KendraConfiguration struct { noSmithyDocumentSerde } -// Specifies a Lambda function that verifies requests to a bot or fulfilles the +// Specifies a Lambda function that verifies requests to a bot or fulfills the // user's request to a bot. type LambdaCodeHook struct { @@ -1147,6 +1229,27 @@ type PlainTextMessage struct { noSmithyDocumentSerde } +// Provides a setting that determines whether the post-fulfillment response is sent +// to the user. For more information, see +// https://docs.aws.amazon.com/lexv2/latest/dg/streaming-progress.html#progress-complete +// (https://docs.aws.amazon.com/lexv2/latest/dg/streaming-progress.html#progress-complete) +type PostFulfillmentStatusSpecification struct { + + // Specifies a list of message groups that Amazon Lex uses to respond the user + // input. + FailureResponse *ResponseSpecification + + // Specifies a list of message groups that Amazon Lex uses to respond the user + // input. + SuccessResponse *ResponseSpecification + + // Specifies a list of message groups that Amazon Lex uses to respond the user + // input. + TimeoutResponse *ResponseSpecification + + noSmithyDocumentSerde +} + // The IAM principal that you allowing or denying access to an Amazon Lex action. // You must provide a service or an arn, but not both in the same statement. For // more information, see AWS JSON policy elements: Principal @@ -1167,7 +1270,7 @@ type Principal struct { // response. type PromptSpecification struct { - // The maximum number of times the bot tries to elicit a resonse from the user + // The maximum number of times the bot tries to elicit a response from the user // using this prompt. // // This member is required. @@ -1477,7 +1580,7 @@ type SlotTypeValue struct { // The value of the slot type entry. SampleValue *SampleValue - // Additional values releated to the slot type entry. + // Additional values related to the slot type entry. Synonyms []SampleValue noSmithyDocumentSerde @@ -1493,7 +1596,7 @@ type SlotValueElicitationSetting struct { // A list of default values for a slot. Default values are used when Amazon Lex // hasn't determined a value for a slot. You can specify default values from - // context variables, sesion attributes, and defined values. + // context variables, session attributes, and defined values. DefaultValueSpecification *SlotDefaultValueSpecification // The prompt that Amazon Lex uses to elicit the slot value from the user. @@ -1675,9 +1778,8 @@ type WaitAndContinueSpecification struct { WaitingResponse *ResponseSpecification // Specifies whether the bot will wait for a user to respond. When this field is - // false, wait and continue responses for a slot aren't used and the bot expects an - // appropriate response within the configured timeout. If the active field isn't - // specified, the default is true. + // false, wait and continue responses for a slot aren't used. If the active field + // isn't specified, the default is true. Active *bool // A response that Amazon Lex sends periodically to the user to indicate that the diff --git a/service/lexmodelsv2/validators.go b/service/lexmodelsv2/validators.go index d5b232ef365..2d73bc08450 100644 --- a/service/lexmodelsv2/validators.go +++ b/service/lexmodelsv2/validators.go @@ -2029,6 +2029,85 @@ func validateFulfillmentCodeHookSettings(v *types.FulfillmentCodeHookSettings) e return nil } invalidParams := smithy.InvalidParamsError{Context: "FulfillmentCodeHookSettings"} + if v.PostFulfillmentStatusSpecification != nil { + if err := validatePostFulfillmentStatusSpecification(v.PostFulfillmentStatusSpecification); err != nil { + invalidParams.AddNested("PostFulfillmentStatusSpecification", err.(smithy.InvalidParamsError)) + } + } + if v.FulfillmentUpdatesSpecification != nil { + if err := validateFulfillmentUpdatesSpecification(v.FulfillmentUpdatesSpecification); err != nil { + invalidParams.AddNested("FulfillmentUpdatesSpecification", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateFulfillmentStartResponseSpecification(v *types.FulfillmentStartResponseSpecification) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "FulfillmentStartResponseSpecification"} + if v.DelayInSeconds == nil { + invalidParams.Add(smithy.NewErrParamRequired("DelayInSeconds")) + } + if v.MessageGroups == nil { + invalidParams.Add(smithy.NewErrParamRequired("MessageGroups")) + } else if v.MessageGroups != nil { + if err := validateMessageGroupsList(v.MessageGroups); err != nil { + invalidParams.AddNested("MessageGroups", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateFulfillmentUpdateResponseSpecification(v *types.FulfillmentUpdateResponseSpecification) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "FulfillmentUpdateResponseSpecification"} + if v.FrequencyInSeconds == nil { + invalidParams.Add(smithy.NewErrParamRequired("FrequencyInSeconds")) + } + if v.MessageGroups == nil { + invalidParams.Add(smithy.NewErrParamRequired("MessageGroups")) + } else if v.MessageGroups != nil { + if err := validateMessageGroupsList(v.MessageGroups); err != nil { + invalidParams.AddNested("MessageGroups", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateFulfillmentUpdatesSpecification(v *types.FulfillmentUpdatesSpecification) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "FulfillmentUpdatesSpecification"} + if v.Active == nil { + invalidParams.Add(smithy.NewErrParamRequired("Active")) + } + if v.StartResponse != nil { + if err := validateFulfillmentStartResponseSpecification(v.StartResponse); err != nil { + invalidParams.AddNested("StartResponse", err.(smithy.InvalidParamsError)) + } + } + if v.UpdateResponse != nil { + if err := validateFulfillmentUpdateResponseSpecification(v.UpdateResponse); err != nil { + invalidParams.AddNested("UpdateResponse", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -2458,6 +2537,33 @@ func validatePlainTextMessage(v *types.PlainTextMessage) error { } } +func validatePostFulfillmentStatusSpecification(v *types.PostFulfillmentStatusSpecification) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "PostFulfillmentStatusSpecification"} + if v.SuccessResponse != nil { + if err := validateResponseSpecification(v.SuccessResponse); err != nil { + invalidParams.AddNested("SuccessResponse", err.(smithy.InvalidParamsError)) + } + } + if v.FailureResponse != nil { + if err := validateResponseSpecification(v.FailureResponse); err != nil { + invalidParams.AddNested("FailureResponse", err.(smithy.InvalidParamsError)) + } + } + if v.TimeoutResponse != nil { + if err := validateResponseSpecification(v.TimeoutResponse); err != nil { + invalidParams.AddNested("TimeoutResponse", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validatePromptSpecification(v *types.PromptSpecification) error { if v == nil { return nil diff --git a/service/lexruntimev2/api_op_RecognizeText.go b/service/lexruntimev2/api_op_RecognizeText.go index c5d730c922c..dad0c3bcec6 100644 --- a/service/lexruntimev2/api_op_RecognizeText.go +++ b/service/lexruntimev2/api_op_RecognizeText.go @@ -15,7 +15,27 @@ import ( // requests to Amazon Lex V2 at runtime. Amazon Lex V2 then interprets the user // input using the machine learning model that it build for the bot. In response, // Amazon Lex V2 returns the next message to convey to the user and an optional -// response card to display. +// response card to display. If the optional post-fulfillment response is +// specified, the messages are returned as follows. For more information, see +// PostFulfillmentStatusSpecification +// (https://docs.aws.amazon.com/lexv2/latest/dg/API_PostFulfillmentStatusSpecification.html). +// +// * +// Success message - Returned if the Lambda function completes successfully and the +// intent state is fulfilled or ready fulfillment if the message is present. +// +// * +// Failed message - The failed message is returned if the Lambda function throws an +// exception or if the Lambda function returns a failed intent state without a +// message. +// +// * Timeout message - If you don't configure a timeout message and a +// timeout, and the Lambda function doesn't return within 30 seconds, the timeout +// message is returned. If you configure a timeout, the timeout message is returned +// when the period times out. +// +// For more information, see Completion message +// (https://docs.aws.amazon.com/lexv2/latest/dg/streaming-progress.html#progress-complete.html). func (c *Client) RecognizeText(ctx context.Context, params *RecognizeTextInput, optFns ...func(*Options)) (*RecognizeTextOutput, error) { if params == nil { params = &RecognizeTextInput{} diff --git a/service/lexruntimev2/api_op_RecognizeUtterance.go b/service/lexruntimev2/api_op_RecognizeUtterance.go index 09b39be9bd5..8d3cf842d0d 100644 --- a/service/lexruntimev2/api_op_RecognizeUtterance.go +++ b/service/lexruntimev2/api_op_RecognizeUtterance.go @@ -39,7 +39,27 @@ import ( // // The example contains a Java application that // compresses and encodes a Java object to send to Amazon Lex V2, and a second that -// decodes and decompresses a response from Amazon Lex V2. +// decodes and decompresses a response from Amazon Lex V2. If the optional +// post-fulfillment response is specified, the messages are returned as follows. +// For more information, see PostFulfillmentStatusSpecification +// (https://docs.aws.amazon.com/lexv2/latest/dg/API_PostFulfillmentStatusSpecification.html). +// +// * +// Success message - Returned if the Lambda function completes successfully and the +// intent state is fulfilled or ready fulfillment if the message is present. +// +// * +// Failed message - The failed message is returned if the Lambda function throws an +// exception or if the Lambda function returns a failed intent state without a +// message. +// +// * Timeout message - If you don't configure a timeout message and a +// timeout, and the Lambda function doesn't return within 30 seconds, the timeout +// message is returned. If you configure a timeout, the timeout message is returned +// when the period times out. +// +// For more information, see Completion message +// (https://docs.aws.amazon.com/lexv2/latest/dg/streaming-progress.html#progress-complete.html). func (c *Client) RecognizeUtterance(ctx context.Context, params *RecognizeUtteranceInput, optFns ...func(*Options)) (*RecognizeUtteranceOutput, error) { if params == nil { params = &RecognizeUtteranceInput{} diff --git a/service/lexruntimev2/types/enums.go b/service/lexruntimev2/types/enums.go index c45543b4990..303bf7d1c38 100644 --- a/service/lexruntimev2/types/enums.go +++ b/service/lexruntimev2/types/enums.go @@ -31,6 +31,7 @@ const ( DialogActionTypeDelegate DialogActionType = "Delegate" DialogActionTypeElicitIntent DialogActionType = "ElicitIntent" DialogActionTypeElicitSlot DialogActionType = "ElicitSlot" + DialogActionTypeNone DialogActionType = "None" ) // Values returns all known values for DialogActionType. Note that this can be @@ -43,6 +44,7 @@ func (DialogActionType) Values() []DialogActionType { "Delegate", "ElicitIntent", "ElicitSlot", + "None", } } @@ -50,11 +52,12 @@ type IntentState string // Enum values for IntentState const ( - IntentStateFailed IntentState = "Failed" - IntentStateFulfilled IntentState = "Fulfilled" - IntentStateInProgress IntentState = "InProgress" - IntentStateReadyForFulfillment IntentState = "ReadyForFulfillment" - IntentStateWaiting IntentState = "Waiting" + IntentStateFailed IntentState = "Failed" + IntentStateFulfilled IntentState = "Fulfilled" + IntentStateInProgress IntentState = "InProgress" + IntentStateReadyForFulfillment IntentState = "ReadyForFulfillment" + IntentStateWaiting IntentState = "Waiting" + IntentStateFulfillmentInProgress IntentState = "FulfillmentInProgress" ) // Values returns all known values for IntentState. Note that this can be expanded @@ -67,6 +70,7 @@ func (IntentState) Values() []IntentState { "InProgress", "ReadyForFulfillment", "Waiting", + "FulfillmentInProgress", } } diff --git a/service/lexruntimev2/types/types.go b/service/lexruntimev2/types/types.go index 63f88261b2c..a5ca369f4e6 100644 --- a/service/lexruntimev2/types/types.go +++ b/service/lexruntimev2/types/types.go @@ -14,9 +14,9 @@ import ( // configured as a trigger are considered for follow up. type ActiveContext struct { - // A lis tof contexts active for the request. A context can be activated when a + // A list of contexts active for the request. A context can be activated when a // previous intent is fulfilled, or by including the context in the request. If you - // don't specify a list of contexts, Amazon Lex will use the current list of + // don't specify a list of contexts, Amazon Lex V2 will use the current list of // contexts for the session. If you specify an empty list, all contexts for the // session are cleared. // diff --git a/service/location/api_op_BatchUpdateDevicePosition.go b/service/location/api_op_BatchUpdateDevicePosition.go index a6962ffc0fc..3e1b24d88f3 100644 --- a/service/location/api_op_BatchUpdateDevicePosition.go +++ b/service/location/api_op_BatchUpdateDevicePosition.go @@ -12,10 +12,16 @@ import ( ) // Uploads position update data for one or more devices to a tracker resource. -// Amazon Location uses the data when reporting the last known device position and -// position history. Only one position update is stored per sample time. Location -// data is sampled at a fixed rate of one position per 30-second interval and -// retained for 30 days before it's deleted. +// Amazon Location uses the data when it reports the last known device position and +// position history. Amazon Location retains location data for 30 days. Position +// updates are handled based on the PositionFiltering property of the tracker. When +// PositionFiltering is set to TimeBased, updates are evaluated against linked +// geofence collections, and location data is stored at a maximum of one position +// per 30 second interval. If your update frequency is more often than every 30 +// seconds, only one update per 30 seconds is stored for each unique device ID. +// When PositionFiltering is set to DistanceBased filtering, location data is +// stored and evaluated against linked geofence collections only if the device has +// moved more than 30 m (98.4 ft). func (c *Client) BatchUpdateDevicePosition(ctx context.Context, params *BatchUpdateDevicePositionInput, optFns ...func(*Options)) (*BatchUpdateDevicePositionOutput, error) { if params == nil { params = &BatchUpdateDevicePositionInput{} diff --git a/service/location/api_op_CalculateRoute.go b/service/location/api_op_CalculateRoute.go index 5f2bb4e6cbe..9318d09f058 100644 --- a/service/location/api_op_CalculateRoute.go +++ b/service/location/api_op_CalculateRoute.go @@ -64,7 +64,9 @@ type CalculateRouteInput struct { // If you specify a departure that's // not located on a road, Amazon Location moves the position to the nearest road // (https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html#snap-to-nearby-road). - // Valid Values: [-180 to 180,-90 to 90] + // If Esri is the provider for your route calculator, specifying a route that is + // longer than 400 km returns a 400 RoutesValidationException error. Valid Values: + // [-180 to 180,-90 to 90] // // This member is required. DeparturePosition []float64 @@ -140,8 +142,10 @@ type CalculateRouteInput struct { // you specify a waypoint position that's not located on a road, Amazon Location // moves the position to the nearest road // (https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html#snap-to-nearby-road). - // Specifying more than 23 waypoints returns a 400 ValidationException error. Valid - // Values: [-180 to 180,-90 to 90] + // Specifying more than 23 waypoints returns a 400 ValidationException error. If + // Esri is the provider for your route calculator, specifying a route that is + // longer than 400 km returns a 400 RoutesValidationException error. Valid Values: + // [-180 to 180,-90 to 90] WaypointPositions [][]float64 noSmithyDocumentSerde diff --git a/service/location/api_op_CreateMap.go b/service/location/api_op_CreateMap.go index 8693f85bd94..03e94fce14d 100644 --- a/service/location/api_op_CreateMap.go +++ b/service/location/api_op_CreateMap.go @@ -51,8 +51,8 @@ type CreateMapInput struct { MapName *string // Specifies the pricing plan for your map resource. For additional details and - // restrictions on each pricing plan option, see the Amazon Location Service - // pricing page (https://aws.amazon.com/location/pricing/). + // restrictions on each pricing plan option, see Amazon Location Service pricing + // (https://aws.amazon.com/location/pricing/). // // This member is required. PricingPlan types.PricingPlan diff --git a/service/location/api_op_CreatePlaceIndex.go b/service/location/api_op_CreatePlaceIndex.go index 433d4001aa7..8a2eaa01269 100644 --- a/service/location/api_op_CreatePlaceIndex.go +++ b/service/location/api_op_CreatePlaceIndex.go @@ -42,8 +42,8 @@ type CreatePlaceIndexInput struct { // // * // Here – For additional information about HERE Technologies - // (https://docs.aws.amazon.com/location/latest/developerguide/HERE.html)'s - // coverage in your region of interest, see HERE details on goecoding coverage + // (https://docs.aws.amazon.com/location/latest/developerguide/HERE.html)' coverage + // in your region of interest, see HERE details on goecoding coverage // (https://developer.here.com/documentation/geocoder/dev_guide/topics/coverage-geocoder.html). // Place index resources using HERE Technologies as a data provider can't store // results @@ -74,8 +74,8 @@ type CreatePlaceIndexInput struct { IndexName *string // Specifies the pricing plan for your place index resource. For additional details - // and restrictions on each pricing plan option, see the Amazon Location Service - // pricing page (https://aws.amazon.com/location/pricing/). + // and restrictions on each pricing plan option, see Amazon Location Service + // pricing (https://aws.amazon.com/location/pricing/). // // This member is required. PricingPlan types.PricingPlan diff --git a/service/location/api_op_CreateRouteCalculator.go b/service/location/api_op_CreateRouteCalculator.go index 61b465b759c..29de6760f22 100644 --- a/service/location/api_op_CreateRouteCalculator.go +++ b/service/location/api_op_CreateRouteCalculator.go @@ -49,10 +49,11 @@ type CreateRouteCalculatorInput struct { // Specifies the data provider of traffic and road network data. This field is // case-sensitive. Enter the valid values as shown. For example, entering HERE - // returns an error. Valid values include: + // returns an error. Route calculators that use Esri as a data source only + // calculate routes that are shorter than 400 km. Valid values include: // - // * Esri – For additional information - // about Esri + // * Esri – + // For additional information about Esri // (https://docs.aws.amazon.com/location/latest/developerguide/esri.html)'s // coverage in your region of interest, see Esri details on street networks and // traffic coverage @@ -60,8 +61,8 @@ type CreateRouteCalculatorInput struct { // // * // Here – For additional information about HERE Technologies - // (https://docs.aws.amazon.com/location/latest/developerguide/HERE.html)'s - // coverage in your region of interest, see HERE car routing coverage + // (https://docs.aws.amazon.com/location/latest/developerguide/HERE.html)' coverage + // in your region of interest, see HERE car routing coverage // (https://developer.here.com/documentation/routing-api/dev_guide/topics/coverage/car-routing.html) // and HERE truck routing coverage // (https://developer.here.com/documentation/routing-api/dev_guide/topics/coverage/truck-routing.html). diff --git a/service/location/api_op_CreateTracker.go b/service/location/api_op_CreateTracker.go index 7efe42adf1d..f02c58880b4 100644 --- a/service/location/api_op_CreateTracker.go +++ b/service/location/api_op_CreateTracker.go @@ -32,8 +32,8 @@ func (c *Client) CreateTracker(ctx context.Context, params *CreateTrackerInput, type CreateTrackerInput struct { // Specifies the pricing plan for the tracker resource. For additional details and - // restrictions on each pricing plan option, see the Amazon Location Service - // pricing page (https://aws.amazon.com/location/pricing/). + // restrictions on each pricing plan option, see Amazon Location Service pricing + // (https://aws.amazon.com/location/pricing/). // // This member is required. PricingPlan types.PricingPlan @@ -60,6 +60,25 @@ type CreateTrackerInput struct { // a key ID, key ARN, alias name, or alias ARN. KmsKeyId *string + // Specifies the position filtering for the tracker resource. Valid values: + // + // * + // TimeBased - Location updates are evaluated against linked geofence collections, + // but not every location update is stored. If your update frequency is more often + // than 30 seconds, only one update per 30 seconds is stored for each unique device + // ID. + // + // * DistanceBased - If the device has moved less than 30 m (98.4 ft), + // location updates are ignored. Location updates within this distance are neither + // evaluated against linked geofence collections, nor stored. This helps control + // costs by reducing the number of geofence evaluations and device positions to + // retrieve. Distance-based filtering can also reduce the jitter effect when + // displaying device trajectory on a map. + // + // This field is optional. If not + // specified, the default value is TimeBased. + PositionFiltering types.PositionFiltering + // Specifies the data provider for the tracker resource. // // * Required value for the @@ -72,7 +91,7 @@ type CreateTrackerInput struct { // product page. Amazon Location Service only uses PricingPlanDataSource to // calculate billing for your tracker resource. Your data will not be shared with // the data provider, and will remain in your AWS account or Region unless you move - // it. Valid Values: Esri | Here + // it. Valid values: Esri | Here PricingPlanDataSource *string // Applies one or more tags to the tracker resource. A tag is a key-value pair diff --git a/service/location/api_op_DescribeMap.go b/service/location/api_op_DescribeMap.go index 87d34c79060..13d773183d8 100644 --- a/service/location/api_op_DescribeMap.go +++ b/service/location/api_op_DescribeMap.go @@ -75,8 +75,8 @@ type DescribeMapOutput struct { MapName *string // The pricing plan selected for the specified map resource. For additional details - // and restrictions on each pricing plan option, see the Amazon Location Service - // pricing page (https://aws.amazon.com/location/pricing/). + // and restrictions on each pricing plan option, see Amazon Location Service + // pricing (https://aws.amazon.com/location/pricing/). // // This member is required. PricingPlan types.PricingPlan diff --git a/service/location/api_op_DescribePlaceIndex.go b/service/location/api_op_DescribePlaceIndex.go index b7e60781ef7..76f802fcf1e 100644 --- a/service/location/api_op_DescribePlaceIndex.go +++ b/service/location/api_op_DescribePlaceIndex.go @@ -53,8 +53,8 @@ type DescribePlaceIndexOutput struct { // // * Here // - // For additional details on data providers, see the - // Amazon Location Service data providers page + // For additional details on data providers, see Amazon + // Location Service data providers // (https://docs.aws.amazon.com/location/latest/developerguide/what-is-data-provider.html). // // This member is required. @@ -85,8 +85,8 @@ type DescribePlaceIndexOutput struct { IndexName *string // The pricing plan selected for the specified place index resource. For additional - // details and restrictions on each pricing plan option, see the Amazon Location - // Service pricing page (https://aws.amazon.com/location/pricing/). + // details and restrictions on each pricing plan option, see Amazon Location + // Service pricing (https://aws.amazon.com/location/pricing/). // // This member is required. PricingPlan types.PricingPlan diff --git a/service/location/api_op_DescribeTracker.go b/service/location/api_op_DescribeTracker.go index 7ad13778e34..45f7b04038e 100644 --- a/service/location/api_op_DescribeTracker.go +++ b/service/location/api_op_DescribeTracker.go @@ -52,8 +52,8 @@ type DescribeTrackerOutput struct { Description *string // The pricing plan selected for the specified tracker resource. For additional - // details and restrictions on each pricing plan option, see the Amazon Location - // Service pricing page (https://aws.amazon.com/location/pricing/). + // details and restrictions on each pricing plan option, see Amazon Location + // Service pricing (https://aws.amazon.com/location/pricing/). // // This member is required. PricingPlan types.PricingPlan @@ -84,6 +84,9 @@ type DescribeTrackerOutput struct { // assigned to the Amazon Location resource. KmsKeyId *string + // The position filtering method of the tracker resource. + PositionFiltering types.PositionFiltering + // The specified data provider for the tracker resource. PricingPlanDataSource *string diff --git a/service/location/api_op_GetMapGlyphs.go b/service/location/api_op_GetMapGlyphs.go index 7f698fe6fb1..e81f90f87fd 100644 --- a/service/location/api_op_GetMapGlyphs.go +++ b/service/location/api_op_GetMapGlyphs.go @@ -29,7 +29,7 @@ func (c *Client) GetMapGlyphs(ctx context.Context, params *GetMapGlyphsInput, op type GetMapGlyphsInput struct { // A comma-separated list of fonts to load glyphs from in order of preference. For - // example, Noto Sans Regular, Arial Unicode. Valid fonts for Esri + // example, Noto Sans Regular, Arial Unicode. Valid fonts stacks for Esri // (https://docs.aws.amazon.com/location/latest/developerguide/esri.html) // styles: // @@ -49,7 +49,7 @@ type GetMapGlyphsInput struct { // * VectorEsriNavigation – Arial Regular | // Arial Italic | Arial Bold // - // Valid fonts for HERE Technologies + // Valid font stacks for HERE Technologies // (https://docs.aws.amazon.com/location/latest/developerguide/HERE.html) // styles: // diff --git a/service/location/api_op_UpdateTracker.go b/service/location/api_op_UpdateTracker.go index d39174d58f0..d3b51585910 100644 --- a/service/location/api_op_UpdateTracker.go +++ b/service/location/api_op_UpdateTracker.go @@ -38,6 +38,22 @@ type UpdateTrackerInput struct { // Updates the description for the tracker resource. Description *string + // Updates the position filtering for the tracker resource. Valid values: + // + // * + // TimeBased - Location updates are evaluated against linked geofence collections, + // but not every location update is stored. If your update frequency is more often + // than 30 seconds, only one update per 30 seconds is stored for each unique device + // ID. + // + // * DistanceBased - If the device has moved less than 30 m (98.4 ft), + // location updates are ignored. Location updates within this distance are neither + // evaluated against linked geofence collections, nor stored. This helps control + // costs by reducing the number of geofence evaluations and device positions to + // retrieve. Distance-based filtering can also reduce the jitter effect when + // displaying device trajectory on a map. + PositionFiltering types.PositionFiltering + // Updates the pricing plan for the tracker resource. For more information about // each pricing plan option restrictions, see Amazon Location Service pricing // (https://aws.amazon.com/location/pricing/). diff --git a/service/location/deserializers.go b/service/location/deserializers.go index f655ed62bb9..a7ae8c710d8 100644 --- a/service/location/deserializers.go +++ b/service/location/deserializers.go @@ -3765,6 +3765,15 @@ func awsRestjson1_deserializeOpDocumentDescribeTrackerOutput(v **DescribeTracker sv.KmsKeyId = ptr.String(jtv) } + case "PositionFiltering": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PositionFiltering to be of type string, got %T instead", value) + } + sv.PositionFiltering = types.PositionFiltering(jtv) + } + case "PricingPlan": if value != nil { jtv, ok := value.(string) diff --git a/service/location/serializers.go b/service/location/serializers.go index 2a7da70b773..1e3a2437232 100644 --- a/service/location/serializers.go +++ b/service/location/serializers.go @@ -1175,6 +1175,11 @@ func awsRestjson1_serializeOpDocumentCreateTrackerInput(v *CreateTrackerInput, v ok.String(*v.KmsKeyId) } + if len(v.PositionFiltering) > 0 { + ok := object.Key("PositionFiltering") + ok.String(string(v.PositionFiltering)) + } + if len(v.PricingPlan) > 0 { ok := object.Key("PricingPlan") ok.String(string(v.PricingPlan)) @@ -3911,6 +3916,11 @@ func awsRestjson1_serializeOpDocumentUpdateTrackerInput(v *UpdateTrackerInput, v ok.String(*v.Description) } + if len(v.PositionFiltering) > 0 { + ok := object.Key("PositionFiltering") + ok.String(string(v.PositionFiltering)) + } + if len(v.PricingPlan) > 0 { ok := object.Key("PricingPlan") ok.String(string(v.PricingPlan)) diff --git a/service/location/types/enums.go b/service/location/types/enums.go index ef33b0cabbd..97b17b5fdd7 100644 --- a/service/location/types/enums.go +++ b/service/location/types/enums.go @@ -54,6 +54,18 @@ func (IntendedUse) Values() []IntendedUse { } } +type PositionFiltering string + +// Values returns all known values for PositionFiltering. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (PositionFiltering) Values() []PositionFiltering { + return []PositionFiltering{ + "TimeBased", + "DistanceBased", + } +} + type PricingPlan string // Values returns all known values for PricingPlan. Note that this can be expanded diff --git a/service/location/types/types.go b/service/location/types/types.go index 3b977b9fb96..9af89378534 100644 --- a/service/location/types/types.go +++ b/service/location/types/types.go @@ -211,9 +211,9 @@ type CalculateRouteSummary struct { DataSource *string // The total distance covered by the route. The sum of the distance travelled - // between every stop on the route. The route distance can't be greater than 250 - // km. If the route exceeds 250 km, the response returns a 400 - // RoutesValidationException error. + // between every stop on the route. If Esri is the data source for the route + // calculator, the route distance can’t be greater than 400 km. If the route + // exceeds 400 km, the response is a 400 RoutesValidationException error. // // This member is required. Distance *float64 @@ -246,7 +246,7 @@ type CalculateRouteSummary struct { // third bbox position is the X coordinate, or longitude of the upper northeast // corner. // - // * The fourth bbox position is the Y coordinate, or longitude of the + // * The fourth bbox position is the Y coordinate, or latitude of the // upper northeast corner. // // This member is required. @@ -603,8 +603,8 @@ type ListMapsResponseEntry struct { MapName *string // The pricing plan for the specified map resource. For additional details and - // restrictions on each pricing plan option, see the Amazon Location Service - // pricing page (https://aws.amazon.com/location/pricing/). + // restrictions on each pricing plan option, see Amazon Location Service pricing + // (https://aws.amazon.com/location/pricing/). // // This member is required. PricingPlan PricingPlan @@ -636,8 +636,8 @@ type ListPlaceIndexesResponseEntry struct { // // * Here // - // For additional details on data providers, see the - // Amazon Location Service data providers page + // For additional details on data providers, see Amazon + // Location Service data providers // (https://docs.aws.amazon.com/location/latest/developerguide/what-is-data-provider.html). // // This member is required. @@ -654,8 +654,8 @@ type ListPlaceIndexesResponseEntry struct { IndexName *string // The pricing plan for the specified place index resource. For additional details - // and restrictions on each pricing plan option, see the Amazon Location Service - // pricing page (https://aws.amazon.com/location/pricing/). + // and restrictions on each pricing plan option, see Amazon Location Service + // pricing (https://aws.amazon.com/location/pricing/). // // This member is required. PricingPlan PricingPlan @@ -741,8 +741,8 @@ type ListTrackersResponseEntry struct { Description *string // The pricing plan for the specified tracker resource. For additional details and - // restrictions on each pricing plan option, see the Amazon Location Service - // pricing page (https://aws.amazon.com/location/pricing/). + // restrictions on each pricing plan option, see Amazon Location Service pricing + // (https://aws.amazon.com/location/pricing/). // // This member is required. PricingPlan PricingPlan @@ -768,49 +768,47 @@ type ListTrackersResponseEntry struct { // Specifies the map tile style selected from an available provider. type MapConfiguration struct { - // Specifies the map style selected from an available data provider. For additional - // information on each map style and to preview each map style, see Esri map styles - // and HERE map styles. Valid Esri - // (https://docs.aws.amazon.com/location/latest/developerguide/esri.html) - // styles: - // - // * VectorEsriDarkGrayCanvas – The Esri Dark Gray Canvas map style. A - // vector basemap with a dark gray, neutral background with minimal colors, labels, - // and features that's designed to draw attention to your thematic content. + // Specifies the map style selected from an available data provider. Valid Esri map + // styles + // (https://docs.aws.amazon.com/location/latest/developerguide/esri.html): // // * - // RasterEsriImagery – The Esri Imagery map style. A raster basemap that provides - // one meter or better satellite and aerial imagery in many parts of the world and - // lower resolution satellite imagery worldwide. - // - // * VectorEsriLightGrayCanvas – The - // Esri Light Gray Canvas map style, which provides a detailed vector basemap with - // a light gray, neutral background style with minimal colors, labels, and features + // VectorEsriDarkGrayCanvas – The Esri Dark Gray Canvas map style. A vector basemap + // with a dark gray, neutral background with minimal colors, labels, and features // that's designed to draw attention to your thematic content. // - // * - // VectorEsriTopographic – The Esri Light map style, which provides a detailed - // vector basemap with a classic Esri map style. + // * RasterEsriImagery + // – The Esri Imagery map style. A raster basemap that provides one meter or better + // satellite and aerial imagery in many parts of the world and lower resolution + // satellite imagery worldwide. + // + // * VectorEsriLightGrayCanvas – The Esri Light Gray + // Canvas map style, which provides a detailed vector basemap with a light gray, + // neutral background style with minimal colors, labels, and features that's + // designed to draw attention to your thematic content. + // + // * VectorEsriTopographic – + // The Esri Light map style, which provides a detailed vector basemap with a + // classic Esri map style. + // + // * VectorEsriStreets – The Esri World Streets map style, + // which provides a detailed vector basemap for the world symbolized with a classic + // Esri street map style. The vector tile layer is similar in content and style to + // the World Street Map raster map. + // + // * VectorEsriNavigation – The Esri World + // Navigation map style, which provides a detailed basemap for the world symbolized + // with a custom navigation map style that's designed for use during the day in + // mobile devices. // - // * VectorEsriStreets – The Esri - // World Streets map style, which provides a detailed vector basemap for the world - // symbolized with a classic Esri street map style. The vector tile layer is - // similar in content and style to the World Street Map raster map. + // Valid HERE Technologies map styles + // (https://docs.aws.amazon.com/location/latest/developerguide/HERE.html): // // * - // VectorEsriNavigation – The Esri World Navigation map style, which provides a - // detailed basemap for the world symbolized with a custom navigation map style - // that's designed for use during the day in mobile devices. - // - // Valid HERE - // Technologies - // (https://docs.aws.amazon.com/location/latest/developerguide/HERE.html) - // styles: - // - // * VectorHereBerlin – The HERE Berlin map style is a high contrast - // detailed base map of the world that blends 3D and 2D rendering. When using HERE - // as your data provider, and selecting the Style VectorHereBerlin, you may not use - // HERE Technologies maps for Asset Management. See the AWS Service Terms + // VectorHereBerlin – The HERE Berlin map style is a high contrast detailed base + // map of the world that blends 3D and 2D rendering. When using HERE as your data + // provider, and selecting the Style VectorHereBerlin, you may not use HERE + // Technologies maps for Asset Management. See the AWS Service Terms // (https://aws.amazon.com/service-terms/) for Amazon Location Service. // // This member is required. @@ -915,8 +913,8 @@ type SearchPlaceIndexForPositionSummary struct { // // * HERE // - // For additional details on data providers, see the - // Amazon Location Service data providers page + // For additional details on data providers, see Amazon + // Location Service data providers // (https://docs.aws.amazon.com/location/latest/developerguide/what-is-data-provider.html). // // This member is required. @@ -944,8 +942,8 @@ type SearchPlaceIndexForTextSummary struct { // // * HERE // - // For additional details on data providers, see the - // Amazon Location Service data providers page + // For additional details on data providers, see Amazon + // Location Service data providers // (https://docs.aws.amazon.com/location/latest/developerguide/what-is-data-provider.html). // // This member is required. diff --git a/service/mediaconvert/api_op_DeletePolicy.go b/service/mediaconvert/api_op_DeletePolicy.go new file mode 100644 index 00000000000..ba59ad4ab1a --- /dev/null +++ b/service/mediaconvert/api_op_DeletePolicy.go @@ -0,0 +1,107 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package mediaconvert + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Permanently delete a policy that you created. +func (c *Client) DeletePolicy(ctx context.Context, params *DeletePolicyInput, optFns ...func(*Options)) (*DeletePolicyOutput, error) { + if params == nil { + params = &DeletePolicyInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeletePolicy", params, optFns, c.addOperationDeletePolicyMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeletePolicyOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeletePolicyInput struct { + noSmithyDocumentSerde +} + +type DeletePolicyOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeletePolicyMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpDeletePolicy{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDeletePolicy{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeletePolicy(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDeletePolicy(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "mediaconvert", + OperationName: "DeletePolicy", + } +} diff --git a/service/mediaconvert/api_op_GetPolicy.go b/service/mediaconvert/api_op_GetPolicy.go new file mode 100644 index 00000000000..06584e37b08 --- /dev/null +++ b/service/mediaconvert/api_op_GetPolicy.go @@ -0,0 +1,114 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package mediaconvert + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/mediaconvert/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Retrieve the JSON for your policy. +func (c *Client) GetPolicy(ctx context.Context, params *GetPolicyInput, optFns ...func(*Options)) (*GetPolicyOutput, error) { + if params == nil { + params = &GetPolicyInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetPolicy", params, optFns, c.addOperationGetPolicyMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetPolicyOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetPolicyInput struct { + noSmithyDocumentSerde +} + +type GetPolicyOutput struct { + + // A policy configures behavior that you allow or disallow for your account. For + // information about MediaConvert policies, see the user guide at + // http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html + Policy *types.Policy + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetPolicyMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpGetPolicy{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpGetPolicy{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetPolicy(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opGetPolicy(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "mediaconvert", + OperationName: "GetPolicy", + } +} diff --git a/service/mediaconvert/api_op_PutPolicy.go b/service/mediaconvert/api_op_PutPolicy.go new file mode 100644 index 00000000000..b8dd9582a60 --- /dev/null +++ b/service/mediaconvert/api_op_PutPolicy.go @@ -0,0 +1,126 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package mediaconvert + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/mediaconvert/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Create or change your policy. For more information about policies, see the user +// guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html +func (c *Client) PutPolicy(ctx context.Context, params *PutPolicyInput, optFns ...func(*Options)) (*PutPolicyOutput, error) { + if params == nil { + params = &PutPolicyInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "PutPolicy", params, optFns, c.addOperationPutPolicyMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*PutPolicyOutput) + out.ResultMetadata = metadata + return out, nil +} + +type PutPolicyInput struct { + + // A policy configures behavior that you allow or disallow for your account. For + // information about MediaConvert policies, see the user guide at + // http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html + // + // This member is required. + Policy *types.Policy + + noSmithyDocumentSerde +} + +type PutPolicyOutput struct { + + // A policy configures behavior that you allow or disallow for your account. For + // information about MediaConvert policies, see the user guide at + // http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html + Policy *types.Policy + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationPutPolicyMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpPutPolicy{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpPutPolicy{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpPutPolicyValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opPutPolicy(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opPutPolicy(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "mediaconvert", + OperationName: "PutPolicy", + } +} diff --git a/service/mediaconvert/deserializers.go b/service/mediaconvert/deserializers.go index 0f5c75741e4..dde00993960 100644 --- a/service/mediaconvert/deserializers.go +++ b/service/mediaconvert/deserializers.go @@ -962,6 +962,104 @@ func awsRestjson1_deserializeOpErrorDeleteJobTemplate(response *smithyhttp.Respo } } +type awsRestjson1_deserializeOpDeletePolicy struct { +} + +func (*awsRestjson1_deserializeOpDeletePolicy) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDeletePolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDeletePolicy(response, &metadata) + } + output := &DeletePolicyOutput{} + out.Result = output + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDeletePolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("BadRequestException", errorCode): + return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("ForbiddenException", errorCode): + return awsRestjson1_deserializeErrorForbiddenException(response, errorBody) + + case strings.EqualFold("InternalServerErrorException", errorCode): + return awsRestjson1_deserializeErrorInternalServerErrorException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("TooManyRequestsException", errorCode): + return awsRestjson1_deserializeErrorTooManyRequestsException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsRestjson1_deserializeOpDeletePreset struct { } @@ -1751,6 +1849,168 @@ func awsRestjson1_deserializeOpDocumentGetJobTemplateOutput(v **GetJobTemplateOu return nil } +type awsRestjson1_deserializeOpGetPolicy struct { +} + +func (*awsRestjson1_deserializeOpGetPolicy) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpGetPolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorGetPolicy(response, &metadata) + } + output := &GetPolicyOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsRestjson1_deserializeOpDocumentGetPolicyOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorGetPolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("BadRequestException", errorCode): + return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("ForbiddenException", errorCode): + return awsRestjson1_deserializeErrorForbiddenException(response, errorBody) + + case strings.EqualFold("InternalServerErrorException", errorCode): + return awsRestjson1_deserializeErrorInternalServerErrorException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("TooManyRequestsException", errorCode): + return awsRestjson1_deserializeErrorTooManyRequestsException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentGetPolicyOutput(v **GetPolicyOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *GetPolicyOutput + if *v == nil { + sv = &GetPolicyOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "policy": + if err := awsRestjson1_deserializeDocumentPolicy(&sv.Policy, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpGetPreset struct { } @@ -2921,6 +3181,168 @@ func awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(v **ListTagsFor return nil } +type awsRestjson1_deserializeOpPutPolicy struct { +} + +func (*awsRestjson1_deserializeOpPutPolicy) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpPutPolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorPutPolicy(response, &metadata) + } + output := &PutPolicyOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsRestjson1_deserializeOpDocumentPutPolicyOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorPutPolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("BadRequestException", errorCode): + return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("ForbiddenException", errorCode): + return awsRestjson1_deserializeErrorForbiddenException(response, errorBody) + + case strings.EqualFold("InternalServerErrorException", errorCode): + return awsRestjson1_deserializeErrorInternalServerErrorException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("TooManyRequestsException", errorCode): + return awsRestjson1_deserializeErrorTooManyRequestsException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentPutPolicyOutput(v **PutPolicyOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *PutPolicyOutput + if *v == nil { + sv = &PutPolicyOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "policy": + if err := awsRestjson1_deserializeDocumentPolicy(&sv.Policy, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpTagResource struct { } @@ -17694,6 +18116,64 @@ func awsRestjson1_deserializeDocumentPartnerWatermarking(v **types.PartnerWaterm return nil } +func awsRestjson1_deserializeDocumentPolicy(v **types.Policy, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.Policy + if *v == nil { + sv = &types.Policy{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "httpInputs": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected InputPolicy to be of type string, got %T instead", value) + } + sv.HttpInputs = types.InputPolicy(jtv) + } + + case "httpsInputs": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected InputPolicy to be of type string, got %T instead", value) + } + sv.HttpsInputs = types.InputPolicy(jtv) + } + + case "s3Inputs": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected InputPolicy to be of type string, got %T instead", value) + } + sv.S3Inputs = types.InputPolicy(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentPreset(v **types.Preset, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/mediaconvert/generated.json b/service/mediaconvert/generated.json index f1494109352..f5579b1a0f3 100644 --- a/service/mediaconvert/generated.json +++ b/service/mediaconvert/generated.json @@ -12,12 +12,14 @@ "api_op_CreatePreset.go", "api_op_CreateQueue.go", "api_op_DeleteJobTemplate.go", + "api_op_DeletePolicy.go", "api_op_DeletePreset.go", "api_op_DeleteQueue.go", "api_op_DescribeEndpoints.go", "api_op_DisassociateCertificate.go", "api_op_GetJob.go", "api_op_GetJobTemplate.go", + "api_op_GetPolicy.go", "api_op_GetPreset.go", "api_op_GetQueue.go", "api_op_ListJobTemplates.go", @@ -25,6 +27,7 @@ "api_op_ListPresets.go", "api_op_ListQueues.go", "api_op_ListTagsForResource.go", + "api_op_PutPolicy.go", "api_op_TagResource.go", "api_op_UntagResource.go", "api_op_UpdateJobTemplate.go", diff --git a/service/mediaconvert/serializers.go b/service/mediaconvert/serializers.go index a1ede8b00cd..3ea63d96281 100644 --- a/service/mediaconvert/serializers.go +++ b/service/mediaconvert/serializers.go @@ -647,6 +647,51 @@ func awsRestjson1_serializeOpHttpBindingsDeleteJobTemplateInput(v *DeleteJobTemp return nil } +type awsRestjson1_serializeOpDeletePolicy struct { +} + +func (*awsRestjson1_serializeOpDeletePolicy) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDeletePolicy) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DeletePolicyInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/2017-08-29/policy") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "DELETE" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsDeletePolicyInput(v *DeletePolicyInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + type awsRestjson1_serializeOpDeletePreset struct { } @@ -1015,6 +1060,51 @@ func awsRestjson1_serializeOpHttpBindingsGetJobTemplateInput(v *GetJobTemplateIn return nil } +type awsRestjson1_serializeOpGetPolicy struct { +} + +func (*awsRestjson1_serializeOpGetPolicy) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpGetPolicy) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*GetPolicyInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/2017-08-29/policy") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "GET" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsGetPolicyInput(v *GetPolicyInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + type awsRestjson1_serializeOpGetPreset struct { } @@ -1461,6 +1551,76 @@ func awsRestjson1_serializeOpHttpBindingsListTagsForResourceInput(v *ListTagsFor return nil } +type awsRestjson1_serializeOpPutPolicy struct { +} + +func (*awsRestjson1_serializeOpPutPolicy) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpPutPolicy) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*PutPolicyInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/2017-08-29/policy") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "PUT" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentPutPolicyInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsPutPolicyInput(v *PutPolicyInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentPutPolicyInput(v *PutPolicyInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Policy != nil { + ok := object.Key("policy") + if err := awsRestjson1_serializeDocumentPolicy(v.Policy, ok); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpTagResource struct { } @@ -7785,6 +7945,28 @@ func awsRestjson1_serializeDocumentPartnerWatermarking(v *types.PartnerWatermark return nil } +func awsRestjson1_serializeDocumentPolicy(v *types.Policy, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.HttpInputs) > 0 { + ok := object.Key("httpInputs") + ok.String(string(v.HttpInputs)) + } + + if len(v.HttpsInputs) > 0 { + ok := object.Key("httpsInputs") + ok.String(string(v.HttpsInputs)) + } + + if len(v.S3Inputs) > 0 { + ok := object.Key("s3Inputs") + ok.String(string(v.S3Inputs)) + } + + return nil +} + func awsRestjson1_serializeDocumentPresetSettings(v *types.PresetSettings, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/mediaconvert/types/enums.go b/service/mediaconvert/types/enums.go index 1f336fc8a5f..de6f8831677 100644 --- a/service/mediaconvert/types/enums.go +++ b/service/mediaconvert/types/enums.go @@ -4563,6 +4563,24 @@ func (InputFilterEnable) Values() []InputFilterEnable { } } +type InputPolicy string + +// Enum values for InputPolicy +const ( + InputPolicyAllowed InputPolicy = "ALLOWED" + InputPolicyDisallowed InputPolicy = "DISALLOWED" +) + +// Values returns all known values for InputPolicy. Note that this can be expanded +// in the future, and so it is only as up to date as the client. The ordering of +// this slice is not guaranteed to be stable across updates. +func (InputPolicy) Values() []InputPolicy { + return []InputPolicy{ + "ALLOWED", + "DISALLOWED", + } +} + type InputPsiControl string // Enum values for InputPsiControl diff --git a/service/mediaconvert/types/types.go b/service/mediaconvert/types/types.go index bdc3e70feb9..5694f4207d2 100644 --- a/service/mediaconvert/types/types.go +++ b/service/mediaconvert/types/types.go @@ -6147,6 +6147,23 @@ type PartnerWatermarking struct { noSmithyDocumentSerde } +// A policy configures behavior that you allow or disallow for your account. For +// information about MediaConvert policies, see the user guide at +// http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html +type Policy struct { + + // Allow or disallow jobs that specify HTTP inputs. + HttpInputs InputPolicy + + // Allow or disallow jobs that specify HTTPS inputs. + HttpsInputs InputPolicy + + // Allow or disallow jobs that specify Amazon S3 inputs. + S3Inputs InputPolicy + + noSmithyDocumentSerde +} + // A preset is a collection of preconfigured media conversion settings that you // want MediaConvert to apply to the output during the conversion process. type Preset struct { diff --git a/service/mediaconvert/validators.go b/service/mediaconvert/validators.go index 97aff74132b..0a0a8982643 100644 --- a/service/mediaconvert/validators.go +++ b/service/mediaconvert/validators.go @@ -310,6 +310,26 @@ func (m *validateOpListTagsForResource) HandleInitialize(ctx context.Context, in return next.HandleInitialize(ctx, in) } +type validateOpPutPolicy struct { +} + +func (*validateOpPutPolicy) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpPutPolicy) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*PutPolicyInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpPutPolicyInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpTagResource struct { } @@ -470,6 +490,10 @@ func addOpListTagsForResourceValidationMiddleware(stack *middleware.Stack) error return stack.Initialize.Add(&validateOpListTagsForResource{}, middleware.After) } +func addOpPutPolicyValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpPutPolicy{}, middleware.After) +} + func addOpTagResourceValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpTagResource{}, middleware.After) } @@ -772,6 +796,21 @@ func validateOpListTagsForResourceInput(v *ListTagsForResourceInput) error { } } +func validateOpPutPolicyInput(v *PutPolicyInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "PutPolicyInput"} + if v.Policy == nil { + invalidParams.Add(smithy.NewErrParamRequired("Policy")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpTagResourceInput(v *TagResourceInput) error { if v == nil { return nil diff --git a/service/medialive/api_op_ClaimDevice.go b/service/medialive/api_op_ClaimDevice.go new file mode 100644 index 00000000000..d18bd81e7a0 --- /dev/null +++ b/service/medialive/api_op_ClaimDevice.go @@ -0,0 +1,115 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package medialive + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Send a request to claim an AWS Elemental device that you have purchased from a +// third-party vendor. After the request succeeds, you will own the device. +func (c *Client) ClaimDevice(ctx context.Context, params *ClaimDeviceInput, optFns ...func(*Options)) (*ClaimDeviceOutput, error) { + if params == nil { + params = &ClaimDeviceInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ClaimDevice", params, optFns, c.addOperationClaimDeviceMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ClaimDeviceOutput) + out.ResultMetadata = metadata + return out, nil +} + +// A request to claim an AWS Elemental device that you have purchased from a +// third-party vendor. +type ClaimDeviceInput struct { + + // The id of the device you want to claim. + Id *string + + noSmithyDocumentSerde +} + +// Placeholder documentation for ClaimDeviceResponse +type ClaimDeviceOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationClaimDeviceMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpClaimDevice{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpClaimDevice{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opClaimDevice(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opClaimDevice(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "medialive", + OperationName: "ClaimDevice", + } +} diff --git a/service/medialive/api_op_CreateChannel.go b/service/medialive/api_op_CreateChannel.go index 8afd53da1d8..033f237541e 100644 --- a/service/medialive/api_op_CreateChannel.go +++ b/service/medialive/api_op_CreateChannel.go @@ -72,7 +72,7 @@ type CreateChannelInput struct { // A collection of key-value pairs. Tags map[string]string - // Settings for VPC output + // Settings for the VPC outputs Vpc *types.VpcOutputSettings noSmithyDocumentSerde diff --git a/service/medialive/api_op_CreateInput.go b/service/medialive/api_op_CreateInput.go index a1fb58568ea..08fa614d980 100644 --- a/service/medialive/api_op_CreateInput.go +++ b/service/medialive/api_op_CreateInput.go @@ -65,7 +65,7 @@ type CreateInputInput struct { // A collection of key-value pairs. Tags map[string]string - // Placeholder documentation for InputType + // The different types of inputs that AWS Elemental MediaLive supports. Type types.InputType // Settings for a private VPC Input. When this property is specified, the input diff --git a/service/medialive/api_op_DescribeInput.go b/service/medialive/api_op_DescribeInput.go index 64efb1af8a5..7ef286a9bb8 100644 --- a/service/medialive/api_op_DescribeInput.go +++ b/service/medialive/api_op_DescribeInput.go @@ -77,7 +77,7 @@ type DescribeInputOutput struct { // Certain pull input sources can be dynamic, meaning that they can have their // URL's dynamically changes during input switch actions. Presently, this - // functionality only works with MP4_FILE inputs. + // functionality only works with MP4_FILE and TS_FILE inputs. InputSourceType types.InputSourceType // A list of MediaConnect Flows for this input. @@ -102,7 +102,7 @@ type DescribeInputOutput struct { // A collection of key-value pairs. Tags map[string]string - // Placeholder documentation for InputType + // The different types of inputs that AWS Elemental MediaLive supports. Type types.InputType // Metadata pertaining to the operation's result. diff --git a/service/medialive/deserializers.go b/service/medialive/deserializers.go index 22becc0790c..34d4782f95c 100644 --- a/service/medialive/deserializers.go +++ b/service/medialive/deserializers.go @@ -928,6 +928,110 @@ func awsRestjson1_deserializeOpErrorCancelInputDeviceTransfer(response *smithyht } } +type awsRestjson1_deserializeOpClaimDevice struct { +} + +func (*awsRestjson1_deserializeOpClaimDevice) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpClaimDevice) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorClaimDevice(response, &metadata) + } + output := &ClaimDeviceOutput{} + out.Result = output + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorClaimDevice(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("BadGatewayException", errorCode): + return awsRestjson1_deserializeErrorBadGatewayException(response, errorBody) + + case strings.EqualFold("BadRequestException", errorCode): + return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) + + case strings.EqualFold("ForbiddenException", errorCode): + return awsRestjson1_deserializeErrorForbiddenException(response, errorBody) + + case strings.EqualFold("GatewayTimeoutException", errorCode): + return awsRestjson1_deserializeErrorGatewayTimeoutException(response, errorBody) + + case strings.EqualFold("InternalServerErrorException", errorCode): + return awsRestjson1_deserializeErrorInternalServerErrorException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("TooManyRequestsException", errorCode): + return awsRestjson1_deserializeErrorTooManyRequestsException(response, errorBody) + + case strings.EqualFold("UnprocessableEntityException", errorCode): + return awsRestjson1_deserializeErrorUnprocessableEntityException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsRestjson1_deserializeOpCreateChannel struct { } @@ -13158,6 +13262,11 @@ func awsRestjson1_deserializeDocumentAudioDescription(v **types.AudioDescription sv.AudioTypeControl = types.AudioDescriptionAudioTypeControl(jtv) } + case "audioWatermarkingSettings": + if err := awsRestjson1_deserializeDocumentAudioWatermarkSettings(&sv.AudioWatermarkingSettings, value); err != nil { + return err + } + case "codecSettings": if err := awsRestjson1_deserializeDocumentAudioCodecSettings(&sv.CodecSettings, value); err != nil { return err @@ -13730,6 +13839,42 @@ func awsRestjson1_deserializeDocumentAudioTrackSelection(v **types.AudioTrackSel return nil } +func awsRestjson1_deserializeDocumentAudioWatermarkSettings(v **types.AudioWatermarkSettings, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AudioWatermarkSettings + if *v == nil { + sv = &types.AudioWatermarkSettings{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "nielsenWatermarksSettings": + if err := awsRestjson1_deserializeDocumentNielsenWatermarksSettings(&sv.NielsenWatermarksSettings, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentAutomaticInputFailoverSettings(v **types.AutomaticInputFailoverSettings, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -24062,6 +24207,64 @@ func awsRestjson1_deserializeDocumentNetworkInputSettings(v **types.NetworkInput return nil } +func awsRestjson1_deserializeDocumentNielsenCBET(v **types.NielsenCBET, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.NielsenCBET + if *v == nil { + sv = &types.NielsenCBET{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "cbetCheckDigitString": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected __stringMin2Max2 to be of type string, got %T instead", value) + } + sv.CbetCheckDigitString = ptr.String(jtv) + } + + case "cbetStepaside": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NielsenWatermarksCbetStepaside to be of type string, got %T instead", value) + } + sv.CbetStepaside = types.NielsenWatermarksCbetStepaside(jtv) + } + + case "csid": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected __stringMin1Max7 to be of type string, got %T instead", value) + } + sv.Csid = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentNielsenConfiguration(v **types.NielsenConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -24111,6 +24314,130 @@ func awsRestjson1_deserializeDocumentNielsenConfiguration(v **types.NielsenConfi return nil } +func awsRestjson1_deserializeDocumentNielsenNaesIiNw(v **types.NielsenNaesIiNw, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.NielsenNaesIiNw + if *v == nil { + sv = &types.NielsenNaesIiNw{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "checkDigitString": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected __stringMin2Max2 to be of type string, got %T instead", value) + } + sv.CheckDigitString = ptr.String(jtv) + } + + case "sid": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.Sid = f64 + + case string: + var f64 float64 + switch { + case strings.EqualFold(jtv, "NaN"): + f64 = math.NaN() + + case strings.EqualFold(jtv, "Infinity"): + f64 = math.Inf(1) + + case strings.EqualFold(jtv, "-Infinity"): + f64 = math.Inf(-1) + + default: + return fmt.Errorf("unknown JSON number value: %s", jtv) + + } + sv.Sid = f64 + + default: + return fmt.Errorf("expected __doubleMin1Max65535 to be a JSON Number, got %T instead", value) + + } + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentNielsenWatermarksSettings(v **types.NielsenWatermarksSettings, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.NielsenWatermarksSettings + if *v == nil { + sv = &types.NielsenWatermarksSettings{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "nielsenCbetSettings": + if err := awsRestjson1_deserializeDocumentNielsenCBET(&sv.NielsenCbetSettings, value); err != nil { + return err + } + + case "nielsenDistributionType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NielsenWatermarksDistributionTypes to be of type string, got %T instead", value) + } + sv.NielsenDistributionType = types.NielsenWatermarksDistributionTypes(jtv) + } + + case "nielsenNaesIiNwSettings": + if err := awsRestjson1_deserializeDocumentNielsenNaesIiNw(&sv.NielsenNaesIiNwSettings, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentNotFoundException(v **types.NotFoundException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/medialive/generated.json b/service/medialive/generated.json index 93a735dfe01..b5f920e927e 100644 --- a/service/medialive/generated.json +++ b/service/medialive/generated.json @@ -12,6 +12,7 @@ "api_op_BatchStop.go", "api_op_BatchUpdateSchedule.go", "api_op_CancelInputDeviceTransfer.go", + "api_op_ClaimDevice.go", "api_op_CreateChannel.go", "api_op_CreateInput.go", "api_op_CreateInputSecurityGroup.go", diff --git a/service/medialive/serializers.go b/service/medialive/serializers.go index fd072ac7809..bc3a04da1b9 100644 --- a/service/medialive/serializers.go +++ b/service/medialive/serializers.go @@ -466,6 +466,74 @@ func awsRestjson1_serializeOpHttpBindingsCancelInputDeviceTransferInput(v *Cance return nil } +type awsRestjson1_serializeOpClaimDevice struct { +} + +func (*awsRestjson1_serializeOpClaimDevice) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpClaimDevice) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*ClaimDeviceInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/prod/claimDevice") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentClaimDeviceInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsClaimDeviceInput(v *ClaimDeviceInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentClaimDeviceInput(v *ClaimDeviceInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Id != nil { + ok := object.Key("id") + ok.String(*v.Id) + } + + return nil +} + type awsRestjson1_serializeOpCreateChannel struct { } @@ -4885,6 +4953,13 @@ func awsRestjson1_serializeDocumentAudioDescription(v *types.AudioDescription, v ok.String(string(v.AudioTypeControl)) } + if v.AudioWatermarkingSettings != nil { + ok := object.Key("audioWatermarkingSettings") + if err := awsRestjson1_serializeDocumentAudioWatermarkSettings(v.AudioWatermarkingSettings, ok); err != nil { + return err + } + } + if v.CodecSettings != nil { ok := object.Key("codecSettings") if err := awsRestjson1_serializeDocumentAudioCodecSettings(v.CodecSettings, ok); err != nil { @@ -5129,6 +5204,20 @@ func awsRestjson1_serializeDocumentAudioTrackSelection(v *types.AudioTrackSelect return nil } +func awsRestjson1_serializeDocumentAudioWatermarkSettings(v *types.AudioWatermarkSettings, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.NielsenWatermarksSettings != nil { + ok := object.Key("nielsenWatermarksSettings") + if err := awsRestjson1_serializeDocumentNielsenWatermarksSettings(v.NielsenWatermarksSettings, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentAutomaticInputFailoverSettings(v *types.AutomaticInputFailoverSettings, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -8860,6 +8949,28 @@ func awsRestjson1_serializeDocumentNetworkInputSettings(v *types.NetworkInputSet return nil } +func awsRestjson1_serializeDocumentNielsenCBET(v *types.NielsenCBET, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.CbetCheckDigitString != nil { + ok := object.Key("cbetCheckDigitString") + ok.String(*v.CbetCheckDigitString) + } + + if len(v.CbetStepaside) > 0 { + ok := object.Key("cbetStepaside") + ok.String(string(v.CbetStepaside)) + } + + if v.Csid != nil { + ok := object.Key("csid") + ok.String(*v.Csid) + } + + return nil +} + func awsRestjson1_serializeDocumentNielsenConfiguration(v *types.NielsenConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -8877,6 +8988,62 @@ func awsRestjson1_serializeDocumentNielsenConfiguration(v *types.NielsenConfigur return nil } +func awsRestjson1_serializeDocumentNielsenNaesIiNw(v *types.NielsenNaesIiNw, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.CheckDigitString != nil { + ok := object.Key("checkDigitString") + ok.String(*v.CheckDigitString) + } + + { + ok := object.Key("sid") + switch { + case math.IsNaN(v.Sid): + ok.String("NaN") + + case math.IsInf(v.Sid, 1): + ok.String("Infinity") + + case math.IsInf(v.Sid, -1): + ok.String("-Infinity") + + default: + ok.Double(v.Sid) + + } + } + + return nil +} + +func awsRestjson1_serializeDocumentNielsenWatermarksSettings(v *types.NielsenWatermarksSettings, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.NielsenCbetSettings != nil { + ok := object.Key("nielsenCbetSettings") + if err := awsRestjson1_serializeDocumentNielsenCBET(v.NielsenCbetSettings, ok); err != nil { + return err + } + } + + if len(v.NielsenDistributionType) > 0 { + ok := object.Key("nielsenDistributionType") + ok.String(string(v.NielsenDistributionType)) + } + + if v.NielsenNaesIiNwSettings != nil { + ok := object.Key("nielsenNaesIiNwSettings") + if err := awsRestjson1_serializeDocumentNielsenNaesIiNw(v.NielsenNaesIiNwSettings, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentOutput(v *types.Output, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/medialive/types/enums.go b/service/medialive/types/enums.go index 71d5642300e..a5d4c889c22 100644 --- a/service/medialive/types/enums.go +++ b/service/medialive/types/enums.go @@ -3226,6 +3226,7 @@ const ( InputTypeMediaconnect InputType = "MEDIACONNECT" InputTypeInputDevice InputType = "INPUT_DEVICE" InputTypeAwsCdi InputType = "AWS_CDI" + InputTypeTsFile InputType = "TS_FILE" ) // Values returns all known values for InputType. Note that this can be expanded in @@ -3242,6 +3243,7 @@ func (InputType) Values() []InputType { "MEDIACONNECT", "INPUT_DEVICE", "AWS_CDI", + "TS_FILE", } } @@ -3982,6 +3984,44 @@ func (NielsenPcmToId3TaggingState) Values() []NielsenPcmToId3TaggingState { } } +type NielsenWatermarksCbetStepaside string + +// Enum values for NielsenWatermarksCbetStepaside +const ( + NielsenWatermarksCbetStepasideDisabled NielsenWatermarksCbetStepaside = "DISABLED" + NielsenWatermarksCbetStepasideEnabled NielsenWatermarksCbetStepaside = "ENABLED" +) + +// Values returns all known values for NielsenWatermarksCbetStepaside. Note that +// this can be expanded in the future, and so it is only as up to date as the +// client. The ordering of this slice is not guaranteed to be stable across +// updates. +func (NielsenWatermarksCbetStepaside) Values() []NielsenWatermarksCbetStepaside { + return []NielsenWatermarksCbetStepaside{ + "DISABLED", + "ENABLED", + } +} + +type NielsenWatermarksDistributionTypes string + +// Enum values for NielsenWatermarksDistributionTypes +const ( + NielsenWatermarksDistributionTypesFinalDistributor NielsenWatermarksDistributionTypes = "FINAL_DISTRIBUTOR" + NielsenWatermarksDistributionTypesProgramContent NielsenWatermarksDistributionTypes = "PROGRAM_CONTENT" +) + +// Values returns all known values for NielsenWatermarksDistributionTypes. Note +// that this can be expanded in the future, and so it is only as up to date as the +// client. The ordering of this slice is not guaranteed to be stable across +// updates. +func (NielsenWatermarksDistributionTypes) Values() []NielsenWatermarksDistributionTypes { + return []NielsenWatermarksDistributionTypes{ + "FINAL_DISTRIBUTOR", + "PROGRAM_CONTENT", + } +} + type OfferingDurationUnits string // Enum values for OfferingDurationUnits diff --git a/service/medialive/types/types.go b/service/medialive/types/types.go index 70b850a26c9..85ec4db75b6 100644 --- a/service/medialive/types/types.go +++ b/service/medialive/types/types.go @@ -244,6 +244,10 @@ type AudioDescription struct { // broadcasterMixedAd. AudioTypeControl AudioDescriptionAudioTypeControl + // Settings to configure one or more solutions that insert audio watermarks in the + // audio encode + AudioWatermarkingSettings *AudioWatermarkSettings + // Audio codec settings. CodecSettings *AudioCodecSettings @@ -441,6 +445,15 @@ type AudioTrackSelection struct { noSmithyDocumentSerde } +// Audio Watermark Settings +type AudioWatermarkSettings struct { + + // Settings to configure Nielsen Watermarks in the audio encode + NielsenWatermarksSettings *NielsenWatermarksSettings + + noSmithyDocumentSerde +} + // The settings for Automatic Input Failover. type AutomaticInputFailoverSettings struct { @@ -1032,7 +1045,7 @@ type ChannelSummary struct { // A collection of key-value pairs. Tags map[string]string - // Settings for VPC output + // Settings for any VPC outputs. Vpc *VpcOutputSettingsDescription noSmithyDocumentSerde @@ -2610,7 +2623,7 @@ type Input struct { // Certain pull input sources can be dynamic, meaning that they can have their // URL's dynamically changes during input switch actions. Presently, this - // functionality only works with MP4_FILE inputs. + // functionality only works with MP4_FILE and TS_FILE inputs. InputSourceType InputSourceType // A list of MediaConnect Flows for this input. @@ -2635,7 +2648,7 @@ type Input struct { // A collection of key-value pairs. Tags map[string]string - // Placeholder documentation for InputType + // The different types of inputs that AWS Elemental MediaLive supports. Type InputType noSmithyDocumentSerde @@ -4157,6 +4170,28 @@ type NetworkInputSettings struct { noSmithyDocumentSerde } +// Nielsen CBET +type NielsenCBET struct { + + // Enter the CBET check digits to use in the watermark. + // + // This member is required. + CbetCheckDigitString *string + + // Determines the method of CBET insertion mode when prior encoding is detected on + // the same layer. + // + // This member is required. + CbetStepaside NielsenWatermarksCbetStepaside + + // Enter the CBET Source ID (CSID) to use in the watermark + // + // This member is required. + Csid *string + + noSmithyDocumentSerde +} + // Nielsen Configuration type NielsenConfiguration struct { @@ -4169,6 +4204,43 @@ type NielsenConfiguration struct { noSmithyDocumentSerde } +// Nielsen Naes Ii Nw +type NielsenNaesIiNw struct { + + // Enter the check digit string for the watermark + // + // This member is required. + CheckDigitString *string + + // Enter the Nielsen Source ID (SID) to include in the watermark + // + // This member is required. + Sid float64 + + noSmithyDocumentSerde +} + +// Nielsen Watermarks Settings +type NielsenWatermarksSettings struct { + + // Complete these fields only if you want to insert watermarks of type Nielsen CBET + NielsenCbetSettings *NielsenCBET + + // Choose the distribution types that you want to assign to the watermarks: + // + // * + // PROGRAM_CONTENT + // + // * FINAL_DISTRIBUTOR + NielsenDistributionType NielsenWatermarksDistributionTypes + + // Complete these fields only if you want to insert watermarks of type Nielsen NAES + // II (N2) and Nielsen NAES VI (NW). + NielsenNaesIiNwSettings *NielsenNaesIiNw + + noSmithyDocumentSerde +} + // Reserved resources available for purchase type Offering struct { diff --git a/service/medialive/validators.go b/service/medialive/validators.go index 518732da498..8fa5b4c06c2 100644 --- a/service/medialive/validators.go +++ b/service/medialive/validators.go @@ -1440,6 +1440,11 @@ func validateAudioDescription(v *types.AudioDescription) error { if v.AudioSelectorName == nil { invalidParams.Add(smithy.NewErrParamRequired("AudioSelectorName")) } + if v.AudioWatermarkingSettings != nil { + if err := validateAudioWatermarkSettings(v.AudioWatermarkingSettings); err != nil { + invalidParams.AddNested("AudioWatermarkingSettings", err.(smithy.InvalidParamsError)) + } + } if v.Name == nil { invalidParams.Add(smithy.NewErrParamRequired("Name")) } @@ -1615,6 +1620,23 @@ func validateAudioTrackSelection(v *types.AudioTrackSelection) error { } } +func validateAudioWatermarkSettings(v *types.AudioWatermarkSettings) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "AudioWatermarkSettings"} + if v.NielsenWatermarksSettings != nil { + if err := validateNielsenWatermarksSettings(v.NielsenWatermarksSettings); err != nil { + invalidParams.AddNested("NielsenWatermarksSettings", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateAutomaticInputFailoverSettings(v *types.AutomaticInputFailoverSettings) error { if v == nil { return nil @@ -2449,6 +2471,64 @@ func validateMultiplexSettings(v *types.MultiplexSettings) error { } } +func validateNielsenCBET(v *types.NielsenCBET) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "NielsenCBET"} + if v.CbetCheckDigitString == nil { + invalidParams.Add(smithy.NewErrParamRequired("CbetCheckDigitString")) + } + if len(v.CbetStepaside) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("CbetStepaside")) + } + if v.Csid == nil { + invalidParams.Add(smithy.NewErrParamRequired("Csid")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateNielsenNaesIiNw(v *types.NielsenNaesIiNw) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "NielsenNaesIiNw"} + if v.CheckDigitString == nil { + invalidParams.Add(smithy.NewErrParamRequired("CheckDigitString")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateNielsenWatermarksSettings(v *types.NielsenWatermarksSettings) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "NielsenWatermarksSettings"} + if v.NielsenCbetSettings != nil { + if err := validateNielsenCBET(v.NielsenCbetSettings); err != nil { + invalidParams.AddNested("NielsenCbetSettings", err.(smithy.InvalidParamsError)) + } + } + if v.NielsenNaesIiNwSettings != nil { + if err := validateNielsenNaesIiNw(v.NielsenNaesIiNwSettings); err != nil { + invalidParams.AddNested("NielsenNaesIiNwSettings", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOutput(v *types.Output) error { if v == nil { return nil diff --git a/service/sagemaker/api_op_CreateEndpoint.go b/service/sagemaker/api_op_CreateEndpoint.go index 3e01d53f3db..5aac035e019 100644 --- a/service/sagemaker/api_op_CreateEndpoint.go +++ b/service/sagemaker/api_op_CreateEndpoint.go @@ -54,16 +54,16 @@ import ( // CreateEndpoint and CreateEndpointConfig API operations, add the following // policies to the role. // -// * Option 1: For a full Amazon SageMaker access, search -// and attach the AmazonSageMakerFullAccess policy. +// * Option 1: For a full SageMaker access, search and +// attach the AmazonSageMakerFullAccess policy. // -// * Option 2: For granting a -// limited access to an IAM role, paste the following Action elements manually into -// the JSON file of the IAM role: "Action": ["sagemaker:CreateEndpoint", +// * Option 2: For granting a limited +// access to an IAM role, paste the following Action elements manually into the +// JSON file of the IAM role: "Action": ["sagemaker:CreateEndpoint", // "sagemaker:CreateEndpointConfig"]"Resource": // ["arn:aws:sagemaker:region:account-id:endpoint/endpointName""arn:aws:sagemaker:region:account-id:endpoint-config/endpointConfigName"] -// For more information, see Amazon SageMaker API Permissions: Actions, -// Permissions, and Resources Reference +// For more information, see SageMaker API Permissions: Actions, Permissions, and +// Resources Reference // (https://docs.aws.amazon.com/sagemaker/latest/dg/api-permissions-reference.html). func (c *Client) CreateEndpoint(ctx context.Context, params *CreateEndpointInput, optFns ...func(*Options)) (*CreateEndpointOutput, error) { if params == nil { diff --git a/service/sagemaker/api_op_CreateFeatureGroup.go b/service/sagemaker/api_op_CreateFeatureGroup.go index 9a87742d262..96e1d708b6e 100644 --- a/service/sagemaker/api_op_CreateFeatureGroup.go +++ b/service/sagemaker/api_op_CreateFeatureGroup.go @@ -100,13 +100,17 @@ type CreateFeatureGroupInput struct { // OfflineStore. // // * A configuration for an Amazon Web Services Glue or Amazon Web - // Services Hive data cataolgue. + // Services Hive data catalog. // // * An KMS encryption key to encrypt the Amazon S3 - // location used for OfflineStore. + // location used for OfflineStore. If KMS encryption key is not specified, by + // default we encrypt all data at rest using Amazon Web Services KMS key. By + // defining your bucket-level key + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html) for SSE, + // you can reduce Amazon Web Services KMS requests costs by up to 99 percent. // - // To learn more about this parameter, see - // OfflineStoreConfig. + // To + // learn more about this parameter, see OfflineStoreConfig. OfflineStoreConfig *types.OfflineStoreConfig // You can turn the OnlineStore on or off by specifying True for the diff --git a/service/sagemaker/api_op_DescribeApp.go b/service/sagemaker/api_op_DescribeApp.go index 71e39ee314b..b92dffecfb2 100644 --- a/service/sagemaker/api_op_DescribeApp.go +++ b/service/sagemaker/api_op_DescribeApp.go @@ -76,7 +76,9 @@ type DescribeAppOutput struct { // The timestamp of the last health check. LastHealthCheckTimestamp *time.Time - // The timestamp of the last user's activity. + // The timestamp of the last user's activity. LastUserActivityTimestamp is also + // updated when SageMaker performs health checks without user activity. As a + // result, this value is set to the same value as LastHealthCheckTimestamp. LastUserActivityTimestamp *time.Time // The instance type and the Amazon Resource Name (ARN) of the SageMaker image diff --git a/service/sagemaker/api_op_DescribeTrainingJob.go b/service/sagemaker/api_op_DescribeTrainingJob.go index b7a341ed7bb..dcb168bcffe 100644 --- a/service/sagemaker/api_op_DescribeTrainingJob.go +++ b/service/sagemaker/api_op_DescribeTrainingJob.go @@ -182,8 +182,8 @@ type DescribeTrainingJobOutput struct { // The billable time in seconds. Billable time refers to the absolute wall-clock // time. Multiply BillableTimeInSeconds by the number of instances (InstanceCount) - // in your training cluster to get the total compute time Amazon SageMaker will - // bill you if you run distributed training. The formula is as follows: + // in your training cluster to get the total compute time SageMaker will bill you + // if you run distributed training. The formula is as follows: // BillableTimeInSeconds * InstanceCount . You can calculate the savings from using // managed spot training using the formula (1 - BillableTimeInSeconds / // TrainingTimeInSeconds) * 100. For example, if BillableTimeInSeconds is 100 and diff --git a/service/sagemaker/types/enums.go b/service/sagemaker/types/enums.go index c65d9712adc..90de8ea5ae4 100644 --- a/service/sagemaker/types/enums.go +++ b/service/sagemaker/types/enums.go @@ -3772,8 +3772,9 @@ type TrainingInputMode string // Enum values for TrainingInputMode const ( - TrainingInputModePipe TrainingInputMode = "Pipe" - TrainingInputModeFile TrainingInputMode = "File" + TrainingInputModePipe TrainingInputMode = "Pipe" + TrainingInputModeFile TrainingInputMode = "File" + TrainingInputModeFastfile TrainingInputMode = "FastFile" ) // Values returns all known values for TrainingInputMode. Note that this can be @@ -3783,6 +3784,7 @@ func (TrainingInputMode) Values() []TrainingInputMode { return []TrainingInputMode{ "Pipe", "File", + "FastFile", } } diff --git a/service/sagemaker/types/types.go b/service/sagemaker/types/types.go index 630fa31969f..abb5dc9d613 100644 --- a/service/sagemaker/types/types.go +++ b/service/sagemaker/types/types.go @@ -86,23 +86,28 @@ type Alarm struct { // (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html). type AlgorithmSpecification struct { - // The input mode that the algorithm supports. For the input modes that Amazon - // SageMaker algorithms support, see Algorithms - // (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). If an algorithm - // supports the File input mode, Amazon SageMaker downloads the training data from - // S3 to the provisioned ML storage Volume, and mounts the directory to docker - // volume for training container. If an algorithm supports the Pipe input mode, - // Amazon SageMaker streams data directly from S3 to the container. In File mode, - // make sure you provision ML storage volume with sufficient capacity to - // accommodate the data download from S3. In addition to the training data, the ML - // storage volume also stores the output model. The algorithm container use ML - // storage volume to also store intermediate information, if any. For distributed - // algorithms using File mode, training data is distributed uniformly, and your - // training duration is predictable if the input data objects size is approximately - // same. Amazon SageMaker does not split the files any further for model training. - // If the object sizes are skewed, training won't be optimal as the data - // distribution is also skewed where one host in a training cluster is overloaded, - // thus becoming bottleneck in training. + // The training input mode that the algorithm supports. For more information about + // input modes, see Algorithms + // (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). Pipe mode If an + // algorithm supports Pipe mode, Amazon SageMaker streams data directly from Amazon + // S3 to the container. File mode If an algorithm supports File mode, SageMaker + // downloads the training data from S3 to the provisioned ML storage volume, and + // mounts the directory to the Docker volume for the training container. You must + // provision the ML storage volume with sufficient capacity to accommodate the data + // downloaded from S3. In addition to the training data, the ML storage volume also + // stores the output model. The algorithm container uses the ML storage volume to + // also store intermediate information, if any. For distributed algorithms, + // training data is distributed uniformly. Your training duration is predictable if + // the input data objects sizes are approximately the same. SageMaker does not + // split the files any further for model training. If the object sizes are skewed, + // training won't be optimal as the data distribution is also skewed when one host + // in a training cluster is overloaded, thus becoming a bottleneck in training. + // FastFile mode If an algorithm supports FastFile mode, SageMaker streams data + // directly from S3 to the container with no code changes, and provides file system + // access to the data. Users can author their training script to interact with + // these files as if they were stored on disk. FastFile mode works best when the + // data is read sequentially. Augmented manifest files aren't supported. The + // startup time is lower when there are fewer files in the S3 bucket provided. // // This member is required. TrainingInputMode TrainingInputMode @@ -1583,14 +1588,20 @@ type AutoMLJobArtifacts struct { // generate. type AutoMLJobCompletionCriteria struct { - // The maximum runtime, in seconds, an AutoML job has to complete. + // The maximum runtime, in seconds, an AutoML job has to complete. If an AutoML job + // exceeds the maximum runtime, the job is stopped automatically and its processing + // is ended gracefully. The AutoML job identifies the best model whose training was + // completed and marks it as the best-performing model. Any unfinished steps of the + // job, such as automatic one-click Autopilot model deployment, will not be + // completed. MaxAutoMLJobRuntimeInSeconds *int32 // The maximum number of times a training job is allowed to run. MaxCandidates *int32 - // The maximum time, in seconds, a training job is allowed to run as part of an - // AutoML job. + // The maximum time, in seconds, that each training job is allowed to run as part + // of a hyperparameter tuning job. For more information, see the used by the + // action. MaxRuntimePerTrainingJobInSeconds *int32 noSmithyDocumentSerde @@ -2493,14 +2504,14 @@ type DataProcessing struct { // join the original input data with the transformed data, set JoinSource to Input. // You can specify OutputFilter as an additional filter to select a portion of the // joined dataset and store it in the output file. For JSON or JSONLines objects, - // such as a JSON array, Amazon SageMaker adds the transformed data to the input - // JSON object in an attribute called SageMakerOutput. The joined result for JSON - // must be a key-value pair object. If the input is not a key-value pair object, - // Amazon SageMaker creates a new JSON file. In the new JSON file, and the input - // data is stored under the SageMakerInput key and the results are stored in - // SageMakerOutput. For CSV data, Amazon SageMaker takes each row as a JSON array - // and joins the transformed data with the input by appending each transformed row - // to the end of the input. The joined data has the original input data followed by + // such as a JSON array, SageMaker adds the transformed data to the input JSON + // object in an attribute called SageMakerOutput. The joined result for JSON must + // be a key-value pair object. If the input is not a key-value pair object, + // SageMaker creates a new JSON file. In the new JSON file, and the input data is + // stored under the SageMakerInput key and the results are stored in + // SageMakerOutput. For CSV data, SageMaker takes each row as a JSON array and + // joins the transformed data with the input by appending each transformed row to + // the end of the input. The joined data has the original input data followed by // the transformed data and the output is a CSV file. For information on how // joining in applied, see Workflow for Associating Inferences with Input Records // (https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html#batch-transform-data-processing-workflow). @@ -3172,7 +3183,7 @@ type EndpointInput struct { // S3 key. Defaults to FullyReplicated S3DataDistributionType ProcessingS3DataDistributionType - // Whether the Pipe or File is used as the input mode for transfering data for the + // Whether the Pipe or File is used as the input mode for transferring data for the // monitoring job. Pipe mode is recommended for large datasets. File mode is useful // for small files that fit in memory. Defaults to File. S3InputMode ProcessingS3InputMode @@ -5083,16 +5094,28 @@ type HumanTaskUiSummary struct { // hyperparameter tuning job launches and the metrics to monitor. type HyperParameterAlgorithmSpecification struct { - // The input mode that the algorithm supports: File or Pipe. In File input mode, - // Amazon SageMaker downloads the training data from Amazon S3 to the storage - // volume that is attached to the training instance and mounts the directory to the - // Docker volume for the training container. In Pipe input mode, Amazon SageMaker - // streams data directly from Amazon S3 to the container. If you specify File mode, - // make sure that you provision the storage volume that is attached to the training - // instance with enough capacity to accommodate the training data downloaded from - // Amazon S3, the model artifacts, and intermediate information. For more - // information about input modes, see Algorithms - // (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). + // The training input mode that the algorithm supports. For more information about + // input modes, see Algorithms + // (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). Pipe mode If an + // algorithm supports Pipe mode, Amazon SageMaker streams data directly from Amazon + // S3 to the container. File mode If an algorithm supports File mode, SageMaker + // downloads the training data from S3 to the provisioned ML storage volume, and + // mounts the directory to the Docker volume for the training container. You must + // provision the ML storage volume with sufficient capacity to accommodate the data + // downloaded from S3. In addition to the training data, the ML storage volume also + // stores the output model. The algorithm container uses the ML storage volume to + // also store intermediate information, if any. For distributed algorithms, + // training data is distributed uniformly. Your training duration is predictable if + // the input data objects sizes are approximately the same. SageMaker does not + // split the files any further for model training. If the object sizes are skewed, + // training won't be optimal as the data distribution is also skewed when one host + // in a training cluster is overloaded, thus becoming a bottleneck in training. + // FastFile mode If an algorithm supports FastFile mode, SageMaker streams data + // directly from S3 to the container with no code changes, and provides file system + // access to the data. Users can author their training script to interact with + // these files as if they were stored on disk. FastFile mode works best when the + // data is read sequentially. Augmented manifest files aren't supported. The + // startup time is lower when there are fewer files in the S3 bucket provided. // // This member is required. TrainingInputMode TrainingInputMode @@ -10143,22 +10166,22 @@ type SourceIpConfig struct { noSmithyDocumentSerde } -// Specifies a limit to how long a model training job, model compilation job, or -// hyperparameter tuning job can run. It also specifies how long a managed Spot -// training job has to complete. When the job reaches the time limit, Amazon -// SageMaker ends the training or compilation job. Use this API to cap model -// training costs. To stop a training job, Amazon SageMaker sends the algorithm the -// SIGTERM signal, which delays job termination for 120 seconds. Algorithms can use -// this 120-second window to save the model artifacts, so the results of training -// are not lost. The training algorithms provided by Amazon SageMaker automatically -// save the intermediate results of a model training job when possible. This -// attempt to save artifacts is only a best effort case as model might not be in a -// state from which it can be saved. For example, if training has just started, the -// model might not be ready to save. When saved, this intermediate data is a valid -// model artifact. You can use it to create a model with CreateModel. The Neural -// Topic Model (NTM) currently does not support saving intermediate model -// artifacts. When training NTMs, make sure that the maximum runtime is sufficient -// for the training job to complete. +// Specifies a limit to how long a model training job or model compilation job can +// run. It also specifies how long a managed spot training job has to complete. +// When the job reaches the time limit, Amazon SageMaker ends the training or +// compilation job. Use this API to cap model training costs. To stop a training +// job, Amazon SageMaker sends the algorithm the SIGTERM signal, which delays job +// termination for 120 seconds. Algorithms can use this 120-second window to save +// the model artifacts, so the results of training are not lost. The training +// algorithms provided by Amazon SageMaker automatically save the intermediate +// results of a model training job when possible. This attempt to save artifacts is +// only a best effort case as model might not be in a state from which it can be +// saved. For example, if training has just started, the model might not be ready +// to save. When saved, this intermediate data is a valid model artifact. You can +// use it to create a model with CreateModel. The Neural Topic Model (NTM) +// currently does not support saving intermediate model artifacts. When training +// NTMs, make sure that the maximum runtime is sufficient for the training job to +// complete. type StoppingCondition struct { // The maximum length of time, in seconds, that a training or compilation job can @@ -10240,12 +10263,12 @@ type SuggestionQuery struct { } // A tag object that consists of a key and an optional value, used to manage -// metadata for Amazon SageMaker Amazon Web Services resources. You can add tags to +// metadata for SageMaker Amazon Web Services resources. You can add tags to // notebook instances, training jobs, hyperparameter tuning jobs, batch transform // jobs, models, labeling jobs, work teams, endpoint configurations, and endpoints. -// For more information on adding tags to Amazon SageMaker resources, see AddTags. -// For more information on adding metadata to your Amazon Web Services resources -// with tagging, see Tagging Amazon Web Services resources +// For more information on adding tags to SageMaker resources, see AddTags. For +// more information on adding metadata to your Amazon Web Services resources with +// tagging, see Tagging Amazon Web Services resources // (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). For advice on // best practices for managing Amazon Web Services resources with tagging, see // Tagging Best Practices: Implement an Effective Amazon Web Services Resource @@ -10623,13 +10646,28 @@ type TrainingJobDefinition struct { // This member is required. StoppingCondition *StoppingCondition - // The input mode used by the algorithm for the training job. For the input modes - // that Amazon SageMaker algorithms support, see Algorithms - // (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). If an algorithm - // supports the File input mode, Amazon SageMaker downloads the training data from - // S3 to the provisioned ML storage Volume, and mounts the directory to docker - // volume for training container. If an algorithm supports the Pipe input mode, - // Amazon SageMaker streams data directly from S3 to the container. + // The training input mode that the algorithm supports. For more information about + // input modes, see Algorithms + // (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). Pipe mode If an + // algorithm supports Pipe mode, Amazon SageMaker streams data directly from Amazon + // S3 to the container. File mode If an algorithm supports File mode, SageMaker + // downloads the training data from S3 to the provisioned ML storage volume, and + // mounts the directory to the Docker volume for the training container. You must + // provision the ML storage volume with sufficient capacity to accommodate the data + // downloaded from S3. In addition to the training data, the ML storage volume also + // stores the output model. The algorithm container uses the ML storage volume to + // also store intermediate information, if any. For distributed algorithms, + // training data is distributed uniformly. Your training duration is predictable if + // the input data objects sizes are approximately the same. SageMaker does not + // split the files any further for model training. If the object sizes are skewed, + // training won't be optimal as the data distribution is also skewed when one host + // in a training cluster is overloaded, thus becoming a bottleneck in training. + // FastFile mode If an algorithm supports FastFile mode, SageMaker streams data + // directly from S3 to the container with no code changes, and provides file system + // access to the data. Users can author their training script to interact with + // these files as if they were stored on disk. FastFile mode works best when the + // data is read sequentially. Augmented manifest files aren't supported. The + // startup time is lower when there are fewer files in the S3 bucket provided. // // This member is required. TrainingInputMode TrainingInputMode diff --git a/service/secretsmanager/api_op_CancelRotateSecret.go b/service/secretsmanager/api_op_CancelRotateSecret.go index a4c0ef898bf..965f77bf309 100644 --- a/service/secretsmanager/api_op_CancelRotateSecret.go +++ b/service/secretsmanager/api_op_CancelRotateSecret.go @@ -67,22 +67,8 @@ func (c *Client) CancelRotateSecret(ctx context.Context, params *CancelRotateSec type CancelRotateSecretInput struct { // Specifies the secret to cancel a rotation request. You can specify either the - // Amazon Resource Name (ARN) or the friendly name of the secret. If you specify an - // ARN, we generally recommend that you specify a complete ARN. You can specify a - // partial ARN too—for example, if you don’t include the final hyphen and six - // random characters that Secrets Manager adds at the end of the ARN when you - // created the secret. A partial ARN match can work as long as it uniquely matches - // only one secret. However, if your secret has a name that ends in a hyphen - // followed by six characters (before Secrets Manager adds the hyphen and six - // characters to the ARN) and you try to use that as a partial ARN, then those - // characters cause Secrets Manager to assume that you’re specifying a complete - // ARN. This confusion can cause unexpected results. To avoid this situation, we - // recommend that you don’t create secret names ending with a hyphen followed by - // six characters. If you specify an incomplete ARN without the random suffix, and - // instead provide the 'friendly name', you must not include the random suffix. If - // you do include the random suffix added by Secrets Manager, you receive either a - // ResourceNotFoundException or an AccessDeniedException error, depending on your - // permissions. + // Amazon Resource Name (ARN) or the friendly name of the secret. For an ARN, we + // recommend that you specify a complete ARN rather than a partial ARN. // // This member is required. SecretId *string diff --git a/service/secretsmanager/api_op_CreateSecret.go b/service/secretsmanager/api_op_CreateSecret.go index 8c2290f88f0..d4bd4617d02 100644 --- a/service/secretsmanager/api_op_CreateSecret.go +++ b/service/secretsmanager/api_op_CreateSecret.go @@ -192,14 +192,10 @@ type CreateSecretInput struct { // only the SecretString parameter. The Secrets Manager console stores the // information as a JSON structure of key/value pairs that the Lambda rotation // function knows how to parse. For storing multiple values, we recommend that you - // use a JSON text string argument and specify key/value pairs. For information on - // how to format a JSON parameter for the various command line tool environments, - // see Using JSON for Parameters - // (https://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-json) - // in the CLI User Guide. For example: {"username":"bob","password":"abc123xyz456"} - // If your command-line tool or SDK requires quotation marks around the parameter, - // you should use single quotes to avoid confusion with the double quotes required - // in the JSON text. + // use a JSON text string argument and specify key/value pairs. For more + // information, see Specifying parameter values for the Amazon Web Services CLI + // (https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters.html) in + // the Amazon Web Services CLI User Guide. SecretString *string // (Optional) Specifies a list of user-defined tags that are attached to the diff --git a/service/secretsmanager/api_op_DeleteResourcePolicy.go b/service/secretsmanager/api_op_DeleteResourcePolicy.go index 7dc4eea9227..c812e4c6281 100644 --- a/service/secretsmanager/api_op_DeleteResourcePolicy.go +++ b/service/secretsmanager/api_op_DeleteResourcePolicy.go @@ -45,21 +45,8 @@ type DeleteResourcePolicyInput struct { // Specifies the secret that you want to delete the attached resource-based policy // for. You can specify either the Amazon Resource Name (ARN) or the friendly name - // of the secret. If you specify an ARN, we generally recommend that you specify a - // complete ARN. You can specify a partial ARN too—for example, if you don’t - // include the final hyphen and six random characters that Secrets Manager adds at - // the end of the ARN when you created the secret. A partial ARN match can work as - // long as it uniquely matches only one secret. However, if your secret has a name - // that ends in a hyphen followed by six characters (before Secrets Manager adds - // the hyphen and six characters to the ARN) and you try to use that as a partial - // ARN, then those characters cause Secrets Manager to assume that you’re - // specifying a complete ARN. This confusion can cause unexpected results. To avoid - // this situation, we recommend that you don’t create secret names ending with a - // hyphen followed by six characters. If you specify an incomplete ARN without the - // random suffix, and instead provide the 'friendly name', you must not include the - // random suffix. If you do include the random suffix added by Secrets Manager, you - // receive either a ResourceNotFoundException or an AccessDeniedException error, - // depending on your permissions. + // of the secret. For an ARN, we recommend that you specify a complete ARN rather + // than a partial ARN. // // This member is required. SecretId *string diff --git a/service/secretsmanager/api_op_DeleteSecret.go b/service/secretsmanager/api_op_DeleteSecret.go index 686d000505f..454a74dbecc 100644 --- a/service/secretsmanager/api_op_DeleteSecret.go +++ b/service/secretsmanager/api_op_DeleteSecret.go @@ -64,22 +64,8 @@ func (c *Client) DeleteSecret(ctx context.Context, params *DeleteSecretInput, op type DeleteSecretInput struct { // Specifies the secret to delete. You can specify either the Amazon Resource Name - // (ARN) or the friendly name of the secret. If you specify an ARN, we generally - // recommend that you specify a complete ARN. You can specify a partial ARN too—for - // example, if you don’t include the final hyphen and six random characters that - // Secrets Manager adds at the end of the ARN when you created the secret. A - // partial ARN match can work as long as it uniquely matches only one secret. - // However, if your secret has a name that ends in a hyphen followed by six - // characters (before Secrets Manager adds the hyphen and six characters to the - // ARN) and you try to use that as a partial ARN, then those characters cause - // Secrets Manager to assume that you’re specifying a complete ARN. This confusion - // can cause unexpected results. To avoid this situation, we recommend that you - // don’t create secret names ending with a hyphen followed by six characters. If - // you specify an incomplete ARN without the random suffix, and instead provide the - // 'friendly name', you must not include the random suffix. If you do include the - // random suffix added by Secrets Manager, you receive either a - // ResourceNotFoundException or an AccessDeniedException error, depending on your - // permissions. + // (ARN) or the friendly name of the secret. For an ARN, we recommend that you + // specify a complete ARN rather than a partial ARN. // // This member is required. SecretId *string diff --git a/service/secretsmanager/api_op_DescribeSecret.go b/service/secretsmanager/api_op_DescribeSecret.go index d1ee97b92fe..f55437ff567 100644 --- a/service/secretsmanager/api_op_DescribeSecret.go +++ b/service/secretsmanager/api_op_DescribeSecret.go @@ -50,22 +50,8 @@ func (c *Client) DescribeSecret(ctx context.Context, params *DescribeSecretInput type DescribeSecretInput struct { // The identifier of the secret whose details you want to retrieve. You can specify - // either the Amazon Resource Name (ARN) or the friendly name of the secret. If you - // specify an ARN, we generally recommend that you specify a complete ARN. You can - // specify a partial ARN too—for example, if you don’t include the final hyphen and - // six random characters that Secrets Manager adds at the end of the ARN when you - // created the secret. A partial ARN match can work as long as it uniquely matches - // only one secret. However, if your secret has a name that ends in a hyphen - // followed by six characters (before Secrets Manager adds the hyphen and six - // characters to the ARN) and you try to use that as a partial ARN, then those - // characters cause Secrets Manager to assume that you’re specifying a complete - // ARN. This confusion can cause unexpected results. To avoid this situation, we - // recommend that you don’t create secret names ending with a hyphen followed by - // six characters. If you specify an incomplete ARN without the random suffix, and - // instead provide the 'friendly name', you must not include the random suffix. If - // you do include the random suffix added by Secrets Manager, you receive either a - // ResourceNotFoundException or an AccessDeniedException error, depending on your - // permissions. + // either the Amazon Resource Name (ARN) or the friendly name of the secret. For an + // ARN, we recommend that you specify a complete ARN rather than a partial ARN. // // This member is required. SecretId *string @@ -133,7 +119,8 @@ type DescribeSecretOutput struct { // RotateSecret. RotationLambdaARN *string - // A structure with the rotation configuration for this secret. + // A structure with the rotation configuration for this secret. This field is only + // populated if rotation is configured. RotationRules *types.RotationRulesType // The list of user-defined tags that are associated with the secret. To add tags diff --git a/service/secretsmanager/api_op_GetResourcePolicy.go b/service/secretsmanager/api_op_GetResourcePolicy.go index 6565f244f14..59abd32c0de 100644 --- a/service/secretsmanager/api_op_GetResourcePolicy.go +++ b/service/secretsmanager/api_op_GetResourcePolicy.go @@ -48,21 +48,8 @@ type GetResourcePolicyInput struct { // Specifies the secret that you want to retrieve the attached resource-based // policy for. You can specify either the Amazon Resource Name (ARN) or the - // friendly name of the secret. If you specify an ARN, we generally recommend that - // you specify a complete ARN. You can specify a partial ARN too—for example, if - // you don’t include the final hyphen and six random characters that Secrets - // Manager adds at the end of the ARN when you created the secret. A partial ARN - // match can work as long as it uniquely matches only one secret. However, if your - // secret has a name that ends in a hyphen followed by six characters (before - // Secrets Manager adds the hyphen and six characters to the ARN) and you try to - // use that as a partial ARN, then those characters cause Secrets Manager to assume - // that you’re specifying a complete ARN. This confusion can cause unexpected - // results. To avoid this situation, we recommend that you don’t create secret - // names ending with a hyphen followed by six characters. If you specify an - // incomplete ARN without the random suffix, and instead provide the 'friendly - // name', you must not include the random suffix. If you do include the random - // suffix added by Secrets Manager, you receive either a ResourceNotFoundException - // or an AccessDeniedException error, depending on your permissions. + // friendly name of the secret. For an ARN, we recommend that you specify a + // complete ARN rather than a partial ARN. // // This member is required. SecretId *string diff --git a/service/secretsmanager/api_op_GetSecretValue.go b/service/secretsmanager/api_op_GetSecretValue.go index 918d507e668..639366cfeb0 100644 --- a/service/secretsmanager/api_op_GetSecretValue.go +++ b/service/secretsmanager/api_op_GetSecretValue.go @@ -49,21 +49,8 @@ type GetSecretValueInput struct { // Specifies the secret containing the version that you want to retrieve. You can // specify either the Amazon Resource Name (ARN) or the friendly name of the - // secret. If you specify an ARN, we generally recommend that you specify a - // complete ARN. You can specify a partial ARN too—for example, if you don’t - // include the final hyphen and six random characters that Secrets Manager adds at - // the end of the ARN when you created the secret. A partial ARN match can work as - // long as it uniquely matches only one secret. However, if your secret has a name - // that ends in a hyphen followed by six characters (before Secrets Manager adds - // the hyphen and six characters to the ARN) and you try to use that as a partial - // ARN, then those characters cause Secrets Manager to assume that you’re - // specifying a complete ARN. This confusion can cause unexpected results. To avoid - // this situation, we recommend that you don’t create secret names ending with a - // hyphen followed by six characters. If you specify an incomplete ARN without the - // random suffix, and instead provide the 'friendly name', you must not include the - // random suffix. If you do include the random suffix added by Secrets Manager, you - // receive either a ResourceNotFoundException or an AccessDeniedException error, - // depending on your permissions. + // secret. For an ARN, we recommend that you specify a complete ARN rather than a + // partial ARN. // // This member is required. SecretId *string diff --git a/service/secretsmanager/api_op_ListSecretVersionIds.go b/service/secretsmanager/api_op_ListSecretVersionIds.go index c5f720cf6d5..fe2eb0c7443 100644 --- a/service/secretsmanager/api_op_ListSecretVersionIds.go +++ b/service/secretsmanager/api_op_ListSecretVersionIds.go @@ -48,21 +48,8 @@ type ListSecretVersionIdsInput struct { // The identifier for the secret containing the versions you want to list. You can // specify either the Amazon Resource Name (ARN) or the friendly name of the - // secret. If you specify an ARN, we generally recommend that you specify a - // complete ARN. You can specify a partial ARN too—for example, if you don’t - // include the final hyphen and six random characters that Secrets Manager adds at - // the end of the ARN when you created the secret. A partial ARN match can work as - // long as it uniquely matches only one secret. However, if your secret has a name - // that ends in a hyphen followed by six characters (before Secrets Manager adds - // the hyphen and six characters to the ARN) and you try to use that as a partial - // ARN, then those characters cause Secrets Manager to assume that you’re - // specifying a complete ARN. This confusion can cause unexpected results. To avoid - // this situation, we recommend that you don’t create secret names ending with a - // hyphen followed by six characters. If you specify an incomplete ARN without the - // random suffix, and instead provide the 'friendly name', you must not include the - // random suffix. If you do include the random suffix added by Secrets Manager, you - // receive either a ResourceNotFoundException or an AccessDeniedException error, - // depending on your permissions. + // secret. For an ARN, we recommend that you specify a complete ARN rather than a + // partial ARN. // // This member is required. SecretId *string diff --git a/service/secretsmanager/api_op_PutResourcePolicy.go b/service/secretsmanager/api_op_PutResourcePolicy.go index a13d0eeaac7..cbd8345d9f5 100644 --- a/service/secretsmanager/api_op_PutResourcePolicy.go +++ b/service/secretsmanager/api_op_PutResourcePolicy.go @@ -67,22 +67,8 @@ type PutResourcePolicyInput struct { ResourcePolicy *string // Specifies the secret that you want to attach the resource-based policy. You can - // specify either the ARN or the friendly name of the secret. If you specify an - // ARN, we generally recommend that you specify a complete ARN. You can specify a - // partial ARN too—for example, if you don’t include the final hyphen and six - // random characters that Secrets Manager adds at the end of the ARN when you - // created the secret. A partial ARN match can work as long as it uniquely matches - // only one secret. However, if your secret has a name that ends in a hyphen - // followed by six characters (before Secrets Manager adds the hyphen and six - // characters to the ARN) and you try to use that as a partial ARN, then those - // characters cause Secrets Manager to assume that you’re specifying a complete - // ARN. This confusion can cause unexpected results. To avoid this situation, we - // recommend that you don’t create secret names ending with a hyphen followed by - // six characters. If you specify an incomplete ARN without the random suffix, and - // instead provide the 'friendly name', you must not include the random suffix. If - // you do include the random suffix added by Secrets Manager, you receive either a - // ResourceNotFoundException or an AccessDeniedException error, depending on your - // permissions. + // specify either the ARN or the friendly name of the secret. For an ARN, we + // recommend that you specify a complete ARN rather than a partial ARN. // // This member is required. SecretId *string diff --git a/service/secretsmanager/api_op_PutSecretValue.go b/service/secretsmanager/api_op_PutSecretValue.go index 90406e2ba04..81f8698bf82 100644 --- a/service/secretsmanager/api_op_PutSecretValue.go +++ b/service/secretsmanager/api_op_PutSecretValue.go @@ -14,77 +14,81 @@ import ( // Stores a new encrypted secret value in the specified secret. To do this, the // operation creates a new version and attaches it to the secret. The version can // contain a new SecretString value or a new SecretBinary value. You can also -// specify the staging labels that are initially attached to the new version. The -// Secrets Manager console uses only the SecretString field. To add binary data to -// a secret with the SecretBinary field you must use the Amazon Web Services CLI or -// one of the Amazon Web Services SDKs. +// specify the staging labels that are initially attached to the new version. We +// recommend you avoid calling PutSecretValue at a sustained rate of more than once +// every 10 minutes. When you update the secret value, Secrets Manager creates a +// new version of the secret. Secrets Manager removes outdated versions when there +// are more than 100, but it does not remove versions created less than 24 hours +// ago. If you call PutSecretValue more than once every 10 minutes, you create more +// versions than Secrets Manager removes, and you will reach the quota for secret +// versions. // -// * If this operation creates the first -// version for the secret then Secrets Manager automatically attaches the staging -// label AWSCURRENT to the new version. +// * If this operation creates the first version for the secret then +// Secrets Manager automatically attaches the staging label AWSCURRENT to the new +// version. // -// * If you do not specify a value for -// VersionStages then Secrets Manager automatically moves the staging label -// AWSCURRENT to this new version. +// * If you do not specify a value for VersionStages then Secrets Manager +// automatically moves the staging label AWSCURRENT to this new version. // -// * If this operation moves the staging label -// AWSCURRENT from another version to this version, then Secrets Manager also -// automatically moves the staging label AWSPREVIOUS to the version that AWSCURRENT -// was removed from. +// * If this +// operation moves the staging label AWSCURRENT from another version to this +// version, then Secrets Manager also automatically moves the staging label +// AWSPREVIOUS to the version that AWSCURRENT was removed from. // -// * This operation is idempotent. If a version with a VersionId -// with the same value as the ClientRequestToken parameter already exists and you -// specify the same secret data, the operation succeeds but does nothing. However, -// if the secret data is different, then the operation fails because you cannot -// modify an existing version; you can only create new ones. +// * This operation +// is idempotent. If a version with a VersionId with the same value as the +// ClientRequestToken parameter already exists and you specify the same secret +// data, the operation succeeds but does nothing. However, if the secret data is +// different, then the operation fails because you cannot modify an existing +// version; you can only create new ones. // -// * If you call an -// operation to encrypt or decrypt the SecretString or SecretBinary for a secret in -// the same account as the calling user and that secret doesn't specify a Amazon -// Web Services KMS encryption key, Secrets Manager uses the account's default -// Amazon Web Services managed customer master key (CMK) with the alias -// aws/secretsmanager. If this key doesn't already exist in your account then -// Secrets Manager creates it for you automatically. All users and roles in the -// same Amazon Web Services account automatically have access to use the default -// CMK. Note that if an Secrets Manager API call results in Amazon Web Services -// creating the account's Amazon Web Services-managed CMK, it can result in a -// one-time significant delay in returning the result. +// * If you call an operation to encrypt or +// decrypt the SecretString or SecretBinary for a secret in the same account as the +// calling user and that secret doesn't specify a Amazon Web Services KMS +// encryption key, Secrets Manager uses the account's default Amazon Web Services +// managed customer master key (CMK) with the alias aws/secretsmanager. If this key +// doesn't already exist in your account then Secrets Manager creates it for you +// automatically. All users and roles in the same Amazon Web Services account +// automatically have access to use the default CMK. Note that if an Secrets +// Manager API call results in Amazon Web Services creating the account's Amazon +// Web Services-managed CMK, it can result in a one-time significant delay in +// returning the result. // -// * If the secret resides in -// a different Amazon Web Services account from the credentials calling an API that -// requires encryption or decryption of the secret value then you must create and -// use a custom Amazon Web Services KMS CMK because you can't access the default -// CMK for the account using credentials from a different Amazon Web Services -// account. Store the ARN of the CMK in the secret when you create the secret or -// when you update it by including it in the KMSKeyId. If you call an API that must -// encrypt or decrypt SecretString or SecretBinary using credentials from a -// different account then the Amazon Web Services KMS key policy must grant -// cross-account access to that other account's user or role for both the -// kms:GenerateDataKey and kms:Decrypt operations. +// * If the secret resides in a different Amazon Web +// Services account from the credentials calling an API that requires encryption or +// decryption of the secret value then you must create and use a custom Amazon Web +// Services KMS CMK because you can't access the default CMK for the account using +// credentials from a different Amazon Web Services account. Store the ARN of the +// CMK in the secret when you create the secret or when you update it by including +// it in the KMSKeyId. If you call an API that must encrypt or decrypt SecretString +// or SecretBinary using credentials from a different account then the Amazon Web +// Services KMS key policy must grant cross-account access to that other account's +// user or role for both the kms:GenerateDataKey and kms:Decrypt +// operations. // -// Minimum permissions To run this -// command, you must have the following permissions: +// Minimum permissions To run this command, you must have the +// following permissions: // -// * -// secretsmanager:PutSecretValue +// * secretsmanager:PutSecretValue // -// * kms:GenerateDataKey - needed only if you use a -// customer-managed Amazon Web Services KMS key to encrypt the secret. You do not -// need this permission to use the account's default Amazon Web Services managed -// CMK for Secrets Manager. +// * kms:GenerateDataKey - +// needed only if you use a customer-managed Amazon Web Services KMS key to encrypt +// the secret. You do not need this permission to use the account's default Amazon +// Web Services managed CMK for Secrets Manager. // // Related operations // -// * To retrieve the encrypted value -// you store in the version of a secret, use GetSecretValue. +// * To retrieve +// the encrypted value you store in the version of a secret, use GetSecretValue. // -// * To create a secret, -// use CreateSecret. +// * +// To create a secret, use CreateSecret. // -// * To get the details for a secret, use DescribeSecret. +// * To get the details for a secret, use +// DescribeSecret. // -// * To -// list the versions attached to a secret, use ListSecretVersionIds. +// * To list the versions attached to a secret, use +// ListSecretVersionIds. func (c *Client) PutSecretValue(ctx context.Context, params *PutSecretValueInput, optFns ...func(*Options)) (*PutSecretValueOutput, error) { if params == nil { params = &PutSecretValueInput{} @@ -104,21 +108,8 @@ type PutSecretValueInput struct { // Specifies the secret to which you want to add a new version. You can specify // either the Amazon Resource Name (ARN) or the friendly name of the secret. The - // secret must already exist. If you specify an ARN, we generally recommend that - // you specify a complete ARN. You can specify a partial ARN too—for example, if - // you don’t include the final hyphen and six random characters that Secrets - // Manager adds at the end of the ARN when you created the secret. A partial ARN - // match can work as long as it uniquely matches only one secret. However, if your - // secret has a name that ends in a hyphen followed by six characters (before - // Secrets Manager adds the hyphen and six characters to the ARN) and you try to - // use that as a partial ARN, then those characters cause Secrets Manager to assume - // that you’re specifying a complete ARN. This confusion can cause unexpected - // results. To avoid this situation, we recommend that you don’t create secret - // names ending with a hyphen followed by six characters. If you specify an - // incomplete ARN without the random suffix, and instead provide the 'friendly - // name', you must not include the random suffix. If you do include the random - // suffix added by Secrets Manager, you receive either a ResourceNotFoundException - // or an AccessDeniedException error, depending on your permissions. + // secret must already exist. For an ARN, we recommend that you specify a complete + // ARN rather than a partial ARN. // // This member is required. SecretId *string @@ -169,14 +160,10 @@ type PutSecretValueInput struct { // only the SecretString parameter. The Secrets Manager console stores the // information as a JSON structure of key/value pairs that the default Lambda // rotation function knows how to parse. For storing multiple values, we recommend - // that you use a JSON text string argument and specify key/value pairs. For - // information on how to format a JSON parameter for the various command line tool - // environments, see Using JSON for Parameters - // (https://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-json) - // in the CLI User Guide. For example: - // [{"username":"bob"},{"password":"abc123xyz456"}] If your command-line tool or - // SDK requires quotation marks around the parameter, you should use single quotes - // to avoid confusion with the double quotes required in the JSON text. + // that you use a JSON text string argument and specify key/value pairs. For more + // information, see Specifying parameter values for the Amazon Web Services CLI + // (https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters.html) in + // the Amazon Web Services CLI User Guide. SecretString *string // (Optional) Specifies a list of staging labels that are attached to this version diff --git a/service/secretsmanager/api_op_RestoreSecret.go b/service/secretsmanager/api_op_RestoreSecret.go index f0004afb524..7754b8b0955 100644 --- a/service/secretsmanager/api_op_RestoreSecret.go +++ b/service/secretsmanager/api_op_RestoreSecret.go @@ -40,21 +40,8 @@ type RestoreSecretInput struct { // Specifies the secret that you want to restore from a previously scheduled // deletion. You can specify either the Amazon Resource Name (ARN) or the friendly - // name of the secret. If you specify an ARN, we generally recommend that you - // specify a complete ARN. You can specify a partial ARN too—for example, if you - // don’t include the final hyphen and six random characters that Secrets Manager - // adds at the end of the ARN when you created the secret. A partial ARN match can - // work as long as it uniquely matches only one secret. However, if your secret has - // a name that ends in a hyphen followed by six characters (before Secrets Manager - // adds the hyphen and six characters to the ARN) and you try to use that as a - // partial ARN, then those characters cause Secrets Manager to assume that you’re - // specifying a complete ARN. This confusion can cause unexpected results. To avoid - // this situation, we recommend that you don’t create secret names ending with a - // hyphen followed by six characters. If you specify an incomplete ARN without the - // random suffix, and instead provide the 'friendly name', you must not include the - // random suffix. If you do include the random suffix added by Secrets Manager, you - // receive either a ResourceNotFoundException or an AccessDeniedException error, - // depending on your permissions. + // name of the secret. For an ARN, we recommend that you specify a complete ARN + // rather than a partial ARN. // // This member is required. SecretId *string diff --git a/service/secretsmanager/api_op_RotateSecret.go b/service/secretsmanager/api_op_RotateSecret.go index c6326854614..c266fca6bc8 100644 --- a/service/secretsmanager/api_op_RotateSecret.go +++ b/service/secretsmanager/api_op_RotateSecret.go @@ -85,22 +85,8 @@ func (c *Client) RotateSecret(ctx context.Context, params *RotateSecretInput, op type RotateSecretInput struct { // Specifies the secret that you want to rotate. You can specify either the Amazon - // Resource Name (ARN) or the friendly name of the secret. If you specify an ARN, - // we generally recommend that you specify a complete ARN. You can specify a - // partial ARN too—for example, if you don’t include the final hyphen and six - // random characters that Secrets Manager adds at the end of the ARN when you - // created the secret. A partial ARN match can work as long as it uniquely matches - // only one secret. However, if your secret has a name that ends in a hyphen - // followed by six characters (before Secrets Manager adds the hyphen and six - // characters to the ARN) and you try to use that as a partial ARN, then those - // characters cause Secrets Manager to assume that you’re specifying a complete - // ARN. This confusion can cause unexpected results. To avoid this situation, we - // recommend that you don’t create secret names ending with a hyphen followed by - // six characters. If you specify an incomplete ARN without the random suffix, and - // instead provide the 'friendly name', you must not include the random suffix. If - // you do include the random suffix added by Secrets Manager, you receive either a - // ResourceNotFoundException or an AccessDeniedException error, depending on your - // permissions. + // Resource Name (ARN) or the friendly name of the secret. For an ARN, we recommend + // that you specify a complete ARN rather than a partial ARN. // // This member is required. SecretId *string diff --git a/service/secretsmanager/api_op_TagResource.go b/service/secretsmanager/api_op_TagResource.go index 5fc23c1e7a2..918bb7cc685 100644 --- a/service/secretsmanager/api_op_TagResource.go +++ b/service/secretsmanager/api_op_TagResource.go @@ -73,33 +73,19 @@ func (c *Client) TagResource(ctx context.Context, params *TagResourceInput, optF type TagResourceInput struct { // The identifier for the secret that you want to attach tags to. You can specify - // either the Amazon Resource Name (ARN) or the friendly name of the secret. If you - // specify an ARN, we generally recommend that you specify a complete ARN. You can - // specify a partial ARN too—for example, if you don’t include the final hyphen and - // six random characters that Secrets Manager adds at the end of the ARN when you - // created the secret. A partial ARN match can work as long as it uniquely matches - // only one secret. However, if your secret has a name that ends in a hyphen - // followed by six characters (before Secrets Manager adds the hyphen and six - // characters to the ARN) and you try to use that as a partial ARN, then those - // characters cause Secrets Manager to assume that you’re specifying a complete - // ARN. This confusion can cause unexpected results. To avoid this situation, we - // recommend that you don’t create secret names ending with a hyphen followed by - // six characters. If you specify an incomplete ARN without the random suffix, and - // instead provide the 'friendly name', you must not include the random suffix. If - // you do include the random suffix added by Secrets Manager, you receive either a - // ResourceNotFoundException or an AccessDeniedException error, depending on your - // permissions. + // either the Amazon Resource Name (ARN) or the friendly name of the secret. For an + // ARN, we recommend that you specify a complete ARN rather than a partial ARN. // // This member is required. SecretId *string // The tags to attach to the secret. Each element in the list consists of a Key and // a Value. This parameter to the API requires a JSON text string argument. For - // information on how to format a JSON parameter for the various command line tool - // environments, see Using JSON for Parameters - // (https://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-json) - // in the CLI User Guide. For the CLI, you can also use the syntax: --Tags - // Key="Key1",Value="Value1" Key="Key2",Value="Value2"[,…] + // storing multiple values, we recommend that you use a JSON text string argument + // and specify key/value pairs. For more information, see Specifying parameter + // values for the Amazon Web Services CLI + // (https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters.html) in + // the Amazon Web Services CLI User Guide. // // This member is required. Tags []types.Tag diff --git a/service/secretsmanager/api_op_UntagResource.go b/service/secretsmanager/api_op_UntagResource.go index b278d2319e0..a529727f66d 100644 --- a/service/secretsmanager/api_op_UntagResource.go +++ b/service/secretsmanager/api_op_UntagResource.go @@ -46,33 +46,19 @@ func (c *Client) UntagResource(ctx context.Context, params *UntagResourceInput, type UntagResourceInput struct { // The identifier for the secret that you want to remove tags from. You can specify - // either the Amazon Resource Name (ARN) or the friendly name of the secret. If you - // specify an ARN, we generally recommend that you specify a complete ARN. You can - // specify a partial ARN too—for example, if you don’t include the final hyphen and - // six random characters that Secrets Manager adds at the end of the ARN when you - // created the secret. A partial ARN match can work as long as it uniquely matches - // only one secret. However, if your secret has a name that ends in a hyphen - // followed by six characters (before Secrets Manager adds the hyphen and six - // characters to the ARN) and you try to use that as a partial ARN, then those - // characters cause Secrets Manager to assume that you’re specifying a complete - // ARN. This confusion can cause unexpected results. To avoid this situation, we - // recommend that you don’t create secret names ending with a hyphen followed by - // six characters. If you specify an incomplete ARN without the random suffix, and - // instead provide the 'friendly name', you must not include the random suffix. If - // you do include the random suffix added by Secrets Manager, you receive either a - // ResourceNotFoundException or an AccessDeniedException error, depending on your - // permissions. + // either the Amazon Resource Name (ARN) or the friendly name of the secret. For an + // ARN, we recommend that you specify a complete ARN rather than a partial ARN. // // This member is required. SecretId *string // A list of tag key names to remove from the secret. You don't specify the value. // Both the key and its associated value are removed. This parameter to the API - // requires a JSON text string argument. For information on how to format a JSON - // parameter for the various command line tool environments, see Using JSON for - // Parameters - // (https://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-json) - // in the CLI User Guide. + // requires a JSON text string argument. For storing multiple values, we recommend + // that you use a JSON text string argument and specify key/value pairs. For more + // information, see Specifying parameter values for the Amazon Web Services CLI + // (https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters.html) in + // the Amazon Web Services CLI User Guide. // // This member is required. TagKeys []string diff --git a/service/secretsmanager/api_op_UpdateSecret.go b/service/secretsmanager/api_op_UpdateSecret.go index 13f50bc9a3e..ee8d91f213f 100644 --- a/service/secretsmanager/api_op_UpdateSecret.go +++ b/service/secretsmanager/api_op_UpdateSecret.go @@ -11,44 +11,50 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Modifies many of the details of the specified secret. If you include a -// ClientRequestToken and either SecretString or SecretBinary then it also creates -// a new version attached to the secret. To modify the rotation configuration of a -// secret, use RotateSecret instead. The Secrets Manager console uses only the -// SecretString parameter and therefore limits you to encrypting and storing only a -// text string. To encrypt and store binary data as part of the version of a -// secret, you must use either the Amazon Web Services CLI or one of the Amazon Web -// Services SDKs. +// Modifies many of the details of the specified secret. To change the secret +// value, you can also use PutSecretValue. To change the rotation configuration of +// a secret, use RotateSecret instead. We recommend you avoid calling UpdateSecret +// at a sustained rate of more than once every 10 minutes. When you call +// UpdateSecret to update the secret value, Secrets Manager creates a new version +// of the secret. Secrets Manager removes outdated versions when there are more +// than 100, but it does not remove versions created less than 24 hours ago. If you +// update the secret value more than once every 10 minutes, you create more +// versions than Secrets Manager removes, and you will reach the quota for secret +// versions. The Secrets Manager console uses only the SecretString parameter and +// therefore limits you to encrypting and storing only a text string. To encrypt +// and store binary data as part of the version of a secret, you must use either +// the Amazon Web Services CLI or one of the Amazon Web Services SDKs. // -// * If a version with a VersionId with the same value as the -// ClientRequestToken parameter already exists, the operation results in an error. -// You cannot modify an existing version, you can only create a new version. +// * If a +// version with a VersionId with the same value as the ClientRequestToken parameter +// already exists, the operation results in an error. You cannot modify an existing +// version, you can only create a new version. // -// * If -// you include SecretString or SecretBinary to create a new secret version, Secrets -// Manager automatically attaches the staging label AWSCURRENT to the new -// version. +// * If you include SecretString or +// SecretBinary to create a new secret version, Secrets Manager automatically +// attaches the staging label AWSCURRENT to the new version. // -// * If you call an operation to encrypt or decrypt the SecretString or -// SecretBinary for a secret in the same account as the calling user and that -// secret doesn't specify a Amazon Web Services KMS encryption key, Secrets Manager -// uses the account's default Amazon Web Services managed customer master key (CMK) -// with the alias aws/secretsmanager. If this key doesn't already exist in your -// account then Secrets Manager creates it for you automatically. All users and -// roles in the same Amazon Web Services account automatically have access to use -// the default CMK. Note that if an Secrets Manager API call results in Amazon Web -// Services creating the account's Amazon Web Services-managed CMK, it can result -// in a one-time significant delay in returning the result. +// * If you call an +// operation to encrypt or decrypt the SecretString or SecretBinary for a secret in +// the same account as the calling user and that secret doesn't specify a Amazon +// Web Services KMS encryption key, Secrets Manager uses the account's default +// Amazon Web Services managed customer master key (CMK) with the alias +// aws/secretsmanager. If this key doesn't already exist in your account then +// Secrets Manager creates it for you automatically. All users and roles in the +// same Amazon Web Services account automatically have access to use the default +// CMK. Note that if an Secrets Manager API call results in Amazon Web Services +// creating the account's Amazon Web Services-managed CMK, it can result in a +// one-time significant delay in returning the result. // -// * If the secret -// resides in a different Amazon Web Services account from the credentials calling -// an API that requires encryption or decryption of the secret value then you must -// create and use a custom Amazon Web Services KMS CMK because you can't access the -// default CMK for the account using credentials from a different Amazon Web -// Services account. Store the ARN of the CMK in the secret when you create the -// secret or when you update it by including it in the KMSKeyId. If you call an API -// that must encrypt or decrypt SecretString or SecretBinary using credentials from -// a different account then the Amazon Web Services KMS key policy must grant +// * If the secret resides in +// a different Amazon Web Services account from the credentials calling an API that +// requires encryption or decryption of the secret value then you must create and +// use a custom Amazon Web Services KMS CMK because you can't access the default +// CMK for the account using credentials from a different Amazon Web Services +// account. Store the ARN of the CMK in the secret when you create the secret or +// when you update it by including it in the KMSKeyId. If you call an API that must +// encrypt or decrypt SecretString or SecretBinary using credentials from a +// different account then the Amazon Web Services KMS key policy must grant // cross-account access to that other account's user or role for both the // kms:GenerateDataKey and kms:Decrypt operations. // @@ -99,21 +105,8 @@ type UpdateSecretInput struct { // Specifies the secret that you want to modify or to which you want to add a new // version. You can specify either the Amazon Resource Name (ARN) or the friendly - // name of the secret. If you specify an ARN, we generally recommend that you - // specify a complete ARN. You can specify a partial ARN too—for example, if you - // don’t include the final hyphen and six random characters that Secrets Manager - // adds at the end of the ARN when you created the secret. A partial ARN match can - // work as long as it uniquely matches only one secret. However, if your secret has - // a name that ends in a hyphen followed by six characters (before Secrets Manager - // adds the hyphen and six characters to the ARN) and you try to use that as a - // partial ARN, then those characters cause Secrets Manager to assume that you’re - // specifying a complete ARN. This confusion can cause unexpected results. To avoid - // this situation, we recommend that you don’t create secret names ending with a - // hyphen followed by six characters. If you specify an incomplete ARN without the - // random suffix, and instead provide the 'friendly name', you must not include the - // random suffix. If you do include the random suffix added by Secrets Manager, you - // receive either a ResourceNotFoundException or an AccessDeniedException error, - // depending on your permissions. + // name of the secret. For an ARN, we recommend that you specify a complete ARN + // rather than a partial ARN. // // This member is required. SecretId *string @@ -154,13 +147,17 @@ type UpdateSecretInput struct { Description *string // (Optional) Specifies an updated ARN or alias of the Amazon Web Services KMS - // customer master key (CMK) to be used to encrypt the protected text in new - // versions of this secret. You can only use the account's default CMK to encrypt - // and decrypt if you call this operation using credentials from the same account - // that owns the secret. If the secret is in a different account, then you must - // create a custom CMK and provide the ARN of that CMK in this field. The user - // making the call must have permissions to both the secret and the CMK in their - // respective accounts. + // customer master key (CMK) that Secrets Manager uses to encrypt the protected + // text in new versions of this secret as well as any existing versions of this + // secret that have the staging labels AWSCURRENT, AWSPENDING, or AWSPREVIOUS. For + // more information about staging labels, see Staging Labels + // (https://docs.aws.amazon.com/secretsmanager/latest/userguide/terms-concepts.html#term_staging-label) + // in the Amazon Web Services Secrets Manager User Guide. You can only use the + // account's default CMK to encrypt and decrypt if you call this operation using + // credentials from the same account that owns the secret. If the secret is in a + // different account, then you must create a custom CMK and provide the ARN of that + // CMK in this field. The user making the call must have permissions to both the + // secret and the CMK in their respective accounts. KmsKeyId *string // (Optional) Specifies updated binary data that you want to encrypt and store in @@ -179,18 +176,10 @@ type UpdateSecretInput struct { // text in only the SecretString parameter. The Secrets Manager console stores the // information as a JSON structure of key/value pairs that the default Lambda // rotation function knows how to parse. For storing multiple values, we recommend - // that you use a JSON text string argument and specify key/value pairs. For - // information on how to format a JSON parameter for the various command line tool - // environments, see Using JSON for Parameters - // (https://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-json) - // in the CLI User Guide. For example: - // [{"username":"bob"},{"password":"abc123xyz456"}] If your command-line tool or - // SDK requires quotation marks around the parameter, you should use single quotes - // to avoid confusion with the double quotes required in the JSON text. You can - // also 'escape' the double quote character in the embedded JSON text by prefacing - // each with a backslash. For example, the following string is surrounded by - // double-quotes. All of the embedded double quotes are escaped: - // "[{\"username\":\"bob\"},{\"password\":\"abc123xyz456\"}]" + // that you use a JSON text string argument and specify key/value pairs. For more + // information, see Specifying parameter values for the Amazon Web Services CLI + // (https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters.html) in + // the Amazon Web Services CLI User Guide. SecretString *string noSmithyDocumentSerde diff --git a/service/secretsmanager/api_op_UpdateSecretVersionStage.go b/service/secretsmanager/api_op_UpdateSecretVersionStage.go index 1bddeddca46..31344a11c97 100644 --- a/service/secretsmanager/api_op_UpdateSecretVersionStage.go +++ b/service/secretsmanager/api_op_UpdateSecretVersionStage.go @@ -54,21 +54,8 @@ type UpdateSecretVersionStageInput struct { // Specifies the secret with the version with the list of staging labels you want // to modify. You can specify either the Amazon Resource Name (ARN) or the friendly - // name of the secret. If you specify an ARN, we generally recommend that you - // specify a complete ARN. You can specify a partial ARN too—for example, if you - // don’t include the final hyphen and six random characters that Secrets Manager - // adds at the end of the ARN when you created the secret. A partial ARN match can - // work as long as it uniquely matches only one secret. However, if your secret has - // a name that ends in a hyphen followed by six characters (before Secrets Manager - // adds the hyphen and six characters to the ARN) and you try to use that as a - // partial ARN, then those characters cause Secrets Manager to assume that you’re - // specifying a complete ARN. This confusion can cause unexpected results. To avoid - // this situation, we recommend that you don’t create secret names ending with a - // hyphen followed by six characters. If you specify an incomplete ARN without the - // random suffix, and instead provide the 'friendly name', you must not include the - // random suffix. If you do include the random suffix added by Secrets Manager, you - // receive either a ResourceNotFoundException or an AccessDeniedException error, - // depending on your permissions. + // name of the secret. For an ARN, we recommend that you specify a complete ARN + // rather than a partial ARN. // // This member is required. SecretId *string diff --git a/service/secretsmanager/api_op_ValidateResourcePolicy.go b/service/secretsmanager/api_op_ValidateResourcePolicy.go index 56e327a03be..31233b67f19 100644 --- a/service/secretsmanager/api_op_ValidateResourcePolicy.go +++ b/service/secretsmanager/api_op_ValidateResourcePolicy.go @@ -65,21 +65,8 @@ type ValidateResourcePolicyInput struct { // (Optional) The identifier of the secret with the resource-based policy you want // to validate. You can specify either the Amazon Resource Name (ARN) or the - // friendly name of the secret. If you specify an ARN, we generally recommend that - // you specify a complete ARN. You can specify a partial ARN too—for example, if - // you don’t include the final hyphen and six random characters that Secrets - // Manager adds at the end of the ARN when you created the secret. A partial ARN - // match can work as long as it uniquely matches only one secret. However, if your - // secret has a name that ends in a hyphen followed by six characters (before - // Secrets Manager adds the hyphen and six characters to the ARN) and you try to - // use that as a partial ARN, then those characters cause Secrets Manager to assume - // that you’re specifying a complete ARN. This confusion can cause unexpected - // results. To avoid this situation, we recommend that you don’t create secret - // names ending with a hyphen followed by six characters. If you specify an - // incomplete ARN without the random suffix, and instead provide the 'friendly - // name', you must not include the random suffix. If you do include the random - // suffix added by Secrets Manager, you receive either a ResourceNotFoundException - // or an AccessDeniedException error, depending on your permissions. + // friendly name of the secret. For an ARN, we recommend that you specify a + // complete ARN rather than a partial ARN. SecretId *string noSmithyDocumentSerde diff --git a/service/securityhub/api_op_CreateMembers.go b/service/securityhub/api_op_CreateMembers.go index 264d60e101d..dff6e3e7da8 100644 --- a/service/securityhub/api_op_CreateMembers.go +++ b/service/securityhub/api_op_CreateMembers.go @@ -31,15 +31,23 @@ import ( // member account. To send the invitation, you use the InviteMembers operation. If // the account owner accepts the invitation, the account becomes a member account // in Security Hub. Accounts that are managed using Organizations do not receive an -// invitation. They automatically become a member account in Security Hub, and -// Security Hub is automatically enabled for those accounts. Note that Security Hub +// invitation. They automatically become a member account in Security Hub. +// +// * If +// the organization account does not have Security Hub enabled, then Security Hub +// and the default standards are automatically enabled. Note that Security Hub // cannot be enabled automatically for the organization management account. The // organization management account must enable Security Hub before the -// administrator account enables it as a member account. A permissions policy is -// added that permits the administrator account to view the findings generated in -// the member account. When Security Hub is enabled in a member account, the member -// account findings are also visible to the administrator account. To remove the -// association between the administrator and member accounts, use the +// administrator account enables it as a member account. +// +// * For organization +// accounts that already have Security Hub enabled, Security Hub does not make any +// other changes to those accounts. It does not change their enabled standards or +// controls. +// +// A permissions policy is added that permits the administrator account +// to view the findings generated in the member account. To remove the association +// between the administrator and member accounts, use the // DisassociateFromMasterAccount or DisassociateMembers operation. func (c *Client) CreateMembers(ctx context.Context, params *CreateMembersInput, optFns ...func(*Options)) (*CreateMembersOutput, error) { if params == nil { diff --git a/service/securityhub/deserializers.go b/service/securityhub/deserializers.go index 0c671ffacc6..020b9956cf8 100644 --- a/service/securityhub/deserializers.go +++ b/service/securityhub/deserializers.go @@ -10482,6 +10482,11 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionDetails(v **types. sv.Status = ptr.String(jtv) } + case "ViewerCertificate": + if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionViewerCertificate(&sv.ViewerCertificate, value); err != nil { + return err + } + case "WebAclId": if value != nil { jtv, ok := value.(string) @@ -10971,6 +10976,100 @@ func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginS3OriginConf return nil } +func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionViewerCertificate(v **types.AwsCloudFrontDistributionViewerCertificate, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsCloudFrontDistributionViewerCertificate + if *v == nil { + sv = &types.AwsCloudFrontDistributionViewerCertificate{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AcmCertificateArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.AcmCertificateArn = ptr.String(jtv) + } + + case "Certificate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Certificate = ptr.String(jtv) + } + + case "CertificateSource": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CertificateSource = ptr.String(jtv) + } + + case "CloudFrontDefaultCertificate": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.CloudFrontDefaultCertificate = jtv + } + + case "IamCertificateId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.IamCertificateId = ptr.String(jtv) + } + + case "MinimumProtocolVersion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.MinimumProtocolVersion = ptr.String(jtv) + } + + case "SslSupportMethod": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.SslSupportMethod = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentAwsCloudTrailTrailDetails(v **types.AwsCloudTrailTrailDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -11137,6 +11236,152 @@ func awsRestjson1_deserializeDocumentAwsCloudTrailTrailDetails(v **types.AwsClou return nil } +func awsRestjson1_deserializeDocumentAwsCodeBuildProjectArtifactsDetails(v **types.AwsCodeBuildProjectArtifactsDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsCodeBuildProjectArtifactsDetails + if *v == nil { + sv = &types.AwsCodeBuildProjectArtifactsDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ArtifactIdentifier": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ArtifactIdentifier = ptr.String(jtv) + } + + case "EncryptionDisabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.EncryptionDisabled = jtv + } + + case "Location": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Location = ptr.String(jtv) + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "NamespaceType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.NamespaceType = ptr.String(jtv) + } + + case "OverrideArtifactName": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.OverrideArtifactName = jtv + } + + case "Packaging": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Packaging = ptr.String(jtv) + } + + case "Path": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Path = ptr.String(jtv) + } + + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Type = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsCodeBuildProjectArtifactsList(v *[]types.AwsCodeBuildProjectArtifactsDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsCodeBuildProjectArtifactsDetails + if *v == nil { + cv = []types.AwsCodeBuildProjectArtifactsDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsCodeBuildProjectArtifactsDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectArtifactsDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentAwsCodeBuildProjectDetails(v **types.AwsCodeBuildProjectDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -11159,6 +11404,11 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectDetails(v **types.AwsCod for key, value := range shape { switch key { + case "Artifacts": + if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectArtifactsList(&sv.Artifacts, value); err != nil { + return err + } + case "EncryptionKey": if value != nil { jtv, ok := value.(string) @@ -11173,6 +11423,11 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectDetails(v **types.AwsCod return err } + case "LogsConfig": + if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectLogsConfigDetails(&sv.LogsConfig, value); err != nil { + return err + } + case "Name": if value != nil { jtv, ok := value.(string) @@ -11241,6 +11496,11 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironment(v **types.Aw sv.Certificate = ptr.String(jtv) } + case "EnvironmentVariables": + if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentEnvironmentVariablesList(&sv.EnvironmentVariables, value); err != nil { + return err + } + case "ImagePullCredentialsType": if value != nil { jtv, ok := value.(string) @@ -11250,6 +11510,15 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironment(v **types.Aw sv.ImagePullCredentialsType = ptr.String(jtv) } + case "PrivilegedMode": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.PrivilegedMode = jtv + } + case "RegistryCredential": if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentRegistryCredential(&sv.RegistryCredential, value); err != nil { return err @@ -11273,7 +11542,7 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironment(v **types.Aw return nil } -func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentRegistryCredential(v **types.AwsCodeBuildProjectEnvironmentRegistryCredential, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails(v **types.AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11286,31 +11555,40 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentRegistryCrede return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCodeBuildProjectEnvironmentRegistryCredential + var sv *types.AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails if *v == nil { - sv = &types.AwsCodeBuildProjectEnvironmentRegistryCredential{} + sv = &types.AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Credential": + case "Name": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Credential = ptr.String(jtv) + sv.Name = ptr.String(jtv) } - case "CredentialProvider": + case "Type": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CredentialProvider = ptr.String(jtv) + sv.Type = ptr.String(jtv) + } + + case "Value": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Value = ptr.String(jtv) } default: @@ -11322,7 +11600,7 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentRegistryCrede return nil } -func awsRestjson1_deserializeDocumentAwsCodeBuildProjectSource(v **types.AwsCodeBuildProjectSource, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentEnvironmentVariablesList(v *[]types.AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11330,21 +11608,261 @@ func awsRestjson1_deserializeDocumentAwsCodeBuildProjectSource(v **types.AwsCode return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsCodeBuildProjectSource + var cv []types.AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails if *v == nil { - sv = &types.AwsCodeBuildProjectSource{} + cv = []types.AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "GitCloneDepth": + for _, value := range shape { + var col types.AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentRegistryCredential(v **types.AwsCodeBuildProjectEnvironmentRegistryCredential, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsCodeBuildProjectEnvironmentRegistryCredential + if *v == nil { + sv = &types.AwsCodeBuildProjectEnvironmentRegistryCredential{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Credential": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Credential = ptr.String(jtv) + } + + case "CredentialProvider": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CredentialProvider = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsCodeBuildProjectLogsConfigCloudWatchLogsDetails(v **types.AwsCodeBuildProjectLogsConfigCloudWatchLogsDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsCodeBuildProjectLogsConfigCloudWatchLogsDetails + if *v == nil { + sv = &types.AwsCodeBuildProjectLogsConfigCloudWatchLogsDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "GroupName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.GroupName = ptr.String(jtv) + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Status = ptr.String(jtv) + } + + case "StreamName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.StreamName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsCodeBuildProjectLogsConfigDetails(v **types.AwsCodeBuildProjectLogsConfigDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsCodeBuildProjectLogsConfigDetails + if *v == nil { + sv = &types.AwsCodeBuildProjectLogsConfigDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "CloudWatchLogs": + if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectLogsConfigCloudWatchLogsDetails(&sv.CloudWatchLogs, value); err != nil { + return err + } + + case "S3Logs": + if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectLogsConfigS3LogsDetails(&sv.S3Logs, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsCodeBuildProjectLogsConfigS3LogsDetails(v **types.AwsCodeBuildProjectLogsConfigS3LogsDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsCodeBuildProjectLogsConfigS3LogsDetails + if *v == nil { + sv = &types.AwsCodeBuildProjectLogsConfigS3LogsDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "EncryptionDisabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.EncryptionDisabled = jtv + } + + case "Location": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Location = ptr.String(jtv) + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Status = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsCodeBuildProjectSource(v **types.AwsCodeBuildProjectSource, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsCodeBuildProjectSource + if *v == nil { + sv = &types.AwsCodeBuildProjectSource{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "GitCloneDepth": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -14657,7 +15175,7 @@ func awsRestjson1_deserializeDocumentAwsEc2VpcDetails(v **types.AwsEc2VpcDetails return nil } -func awsRestjson1_deserializeDocumentAwsEc2VpnConnectionDetails(v **types.AwsEc2VpnConnectionDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEc2VpcEndpointServiceDetails(v **types.AwsEc2VpcEndpointServiceDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14670,40 +15188,224 @@ func awsRestjson1_deserializeDocumentAwsEc2VpnConnectionDetails(v **types.AwsEc2 return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEc2VpnConnectionDetails + var sv *types.AwsEc2VpcEndpointServiceDetails if *v == nil { - sv = &types.AwsEc2VpnConnectionDetails{} + sv = &types.AwsEc2VpcEndpointServiceDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Category": + case "AcceptanceRequired": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.Category = ptr.String(jtv) + sv.AcceptanceRequired = jtv } - case "CustomerGatewayConfiguration": + case "AvailabilityZones": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.AvailabilityZones, value); err != nil { + return err + } + + case "BaseEndpointDnsNames": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.BaseEndpointDnsNames, value); err != nil { + return err + } + + case "GatewayLoadBalancerArns": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.GatewayLoadBalancerArns, value); err != nil { + return err + } + + case "ManagesVpcEndpoints": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.CustomerGatewayConfiguration = ptr.String(jtv) + sv.ManagesVpcEndpoints = jtv } - case "CustomerGatewayId": + case "NetworkLoadBalancerArns": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.NetworkLoadBalancerArns, value); err != nil { + return err + } + + case "PrivateDnsName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CustomerGatewayId = ptr.String(jtv) + sv.PrivateDnsName = ptr.String(jtv) + } + + case "ServiceId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ServiceId = ptr.String(jtv) + } + + case "ServiceName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ServiceName = ptr.String(jtv) + } + + case "ServiceState": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ServiceState = ptr.String(jtv) + } + + case "ServiceType": + if err := awsRestjson1_deserializeDocumentAwsEc2VpcEndpointServiceServiceTypeList(&sv.ServiceType, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEc2VpcEndpointServiceServiceTypeDetails(v **types.AwsEc2VpcEndpointServiceServiceTypeDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEc2VpcEndpointServiceServiceTypeDetails + if *v == nil { + sv = &types.AwsEc2VpcEndpointServiceServiceTypeDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ServiceType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.ServiceType = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEc2VpcEndpointServiceServiceTypeList(v *[]types.AwsEc2VpcEndpointServiceServiceTypeDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsEc2VpcEndpointServiceServiceTypeDetails + if *v == nil { + cv = []types.AwsEc2VpcEndpointServiceServiceTypeDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsEc2VpcEndpointServiceServiceTypeDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsEc2VpcEndpointServiceServiceTypeDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEc2VpnConnectionDetails(v **types.AwsEc2VpnConnectionDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEc2VpnConnectionDetails + if *v == nil { + sv = &types.AwsEc2VpnConnectionDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Category": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Category = ptr.String(jtv) + } + + case "CustomerGatewayConfiguration": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CustomerGatewayConfiguration = ptr.String(jtv) + } + + case "CustomerGatewayId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CustomerGatewayId = ptr.String(jtv) } case "Options": @@ -15312,7 +16014,7 @@ func awsRestjson1_deserializeDocumentAwsEcrContainerImageDetails(v **types.AwsEc return nil } -func awsRestjson1_deserializeDocumentAwsEcsClusterClusterSettingsDetails(v **types.AwsEcsClusterClusterSettingsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcrRepositoryDetails(v **types.AwsEcrRepositoryDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15325,31 +16027,59 @@ func awsRestjson1_deserializeDocumentAwsEcsClusterClusterSettingsDetails(v **typ return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsClusterClusterSettingsDetails + var sv *types.AwsEcrRepositoryDetails if *v == nil { - sv = &types.AwsEcsClusterClusterSettingsDetails{} + sv = &types.AwsEcrRepositoryDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Name": + case "Arn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Name = ptr.String(jtv) + sv.Arn = ptr.String(jtv) } - case "Value": + case "ImageScanningConfiguration": + if err := awsRestjson1_deserializeDocumentAwsEcrRepositoryImageScanningConfigurationDetails(&sv.ImageScanningConfiguration, value); err != nil { + return err + } + + case "ImageTagMutability": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Value = ptr.String(jtv) + sv.ImageTagMutability = ptr.String(jtv) + } + + case "LifecyclePolicy": + if err := awsRestjson1_deserializeDocumentAwsEcrRepositoryLifecyclePolicyDetails(&sv.LifecyclePolicy, value); err != nil { + return err + } + + case "RepositoryName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.RepositoryName = ptr.String(jtv) + } + + case "RepositoryPolicyText": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.RepositoryPolicyText = ptr.String(jtv) } default: @@ -15361,7 +16091,7 @@ func awsRestjson1_deserializeDocumentAwsEcsClusterClusterSettingsDetails(v **typ return nil } -func awsRestjson1_deserializeDocumentAwsEcsClusterClusterSettingsList(v *[]types.AwsEcsClusterClusterSettingsDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcrRepositoryImageScanningConfigurationDetails(v **types.AwsEcrRepositoryImageScanningConfigurationDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15369,33 +16099,39 @@ func awsRestjson1_deserializeDocumentAwsEcsClusterClusterSettingsList(v *[]types return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsEcsClusterClusterSettingsDetails + var sv *types.AwsEcrRepositoryImageScanningConfigurationDetails if *v == nil { - cv = []types.AwsEcsClusterClusterSettingsDetails{} + sv = &types.AwsEcrRepositoryImageScanningConfigurationDetails{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col types.AwsEcsClusterClusterSettingsDetails - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsEcsClusterClusterSettingsDetails(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + for key, value := range shape { + switch key { + case "ScanOnPush": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.ScanOnPush = jtv + } + + default: + _, _ = key, value + } } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationDetails(v **types.AwsEcsClusterConfigurationDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcrRepositoryLifecyclePolicyDetails(v **types.AwsEcrRepositoryLifecyclePolicyDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15408,18 +16144,31 @@ func awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationDetails(v **types return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsClusterConfigurationDetails + var sv *types.AwsEcrRepositoryLifecyclePolicyDetails if *v == nil { - sv = &types.AwsEcsClusterConfigurationDetails{} + sv = &types.AwsEcrRepositoryLifecyclePolicyDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "ExecuteCommandConfiguration": - if err := awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationExecuteCommandConfigurationDetails(&sv.ExecuteCommandConfiguration, value); err != nil { - return err + case "LifecyclePolicyText": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.LifecyclePolicyText = ptr.String(jtv) + } + + case "RegistryId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.RegistryId = ptr.String(jtv) } default: @@ -15431,7 +16180,7 @@ func awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationDetails(v **types return nil } -func awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationExecuteCommandConfigurationDetails(v **types.AwsEcsClusterConfigurationExecuteCommandConfigurationDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsClusterClusterSettingsDetails(v **types.AwsEcsClusterClusterSettingsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15444,36 +16193,31 @@ func awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationExecuteCommandCon return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsClusterConfigurationExecuteCommandConfigurationDetails + var sv *types.AwsEcsClusterClusterSettingsDetails if *v == nil { - sv = &types.AwsEcsClusterConfigurationExecuteCommandConfigurationDetails{} + sv = &types.AwsEcsClusterClusterSettingsDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "KmsKeyId": + case "Name": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.KmsKeyId = ptr.String(jtv) - } - - case "LogConfiguration": - if err := awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails(&sv.LogConfiguration, value); err != nil { - return err + sv.Name = ptr.String(jtv) } - case "Logging": + case "Value": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Logging = ptr.String(jtv) + sv.Value = ptr.String(jtv) } default: @@ -15485,7 +16229,7 @@ func awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationExecuteCommandCon return nil } -func awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails(v **types.AwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEcsClusterClusterSettingsList(v *[]types.AwsEcsClusterClusterSettingsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15493,14 +16237,138 @@ func awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationExecuteCommandCon return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails + var cv []types.AwsEcsClusterClusterSettingsDetails if *v == nil { - sv = &types.AwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails{} + cv = []types.AwsEcsClusterClusterSettingsDetails{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsEcsClusterClusterSettingsDetails + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsEcsClusterClusterSettingsDetails(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationDetails(v **types.AwsEcsClusterConfigurationDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsClusterConfigurationDetails + if *v == nil { + sv = &types.AwsEcsClusterConfigurationDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ExecuteCommandConfiguration": + if err := awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationExecuteCommandConfigurationDetails(&sv.ExecuteCommandConfiguration, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationExecuteCommandConfigurationDetails(v **types.AwsEcsClusterConfigurationExecuteCommandConfigurationDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsClusterConfigurationExecuteCommandConfigurationDetails + if *v == nil { + sv = &types.AwsEcsClusterConfigurationExecuteCommandConfigurationDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "KmsKeyId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.KmsKeyId = ptr.String(jtv) + } + + case "LogConfiguration": + if err := awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails(&sv.LogConfiguration, value); err != nil { + return err + } + + case "Logging": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Logging = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails(v **types.AwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails + if *v == nil { + sv = &types.AwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails{} } else { sv = *v } @@ -19313,7 +20181,7 @@ func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesList(v *[]types. return nil } -func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentDetails(v **types.AwsElasticBeanstalkEnvironmentDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEksClusterDetails(v **types.AwsEksClusterDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19326,145 +20194,86 @@ func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentDetails(v **t return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElasticBeanstalkEnvironmentDetails + var sv *types.AwsEksClusterDetails if *v == nil { - sv = &types.AwsElasticBeanstalkEnvironmentDetails{} + sv = &types.AwsEksClusterDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "ApplicationName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ApplicationName = ptr.String(jtv) - } - - case "Cname": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Cname = ptr.String(jtv) - } - - case "DateCreated": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.DateCreated = ptr.String(jtv) - } - - case "DateUpdated": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.DateUpdated = ptr.String(jtv) - } - - case "Description": + case "Arn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Description = ptr.String(jtv) + sv.Arn = ptr.String(jtv) } - case "EndpointUrl": + case "CertificateAuthorityData": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.EndpointUrl = ptr.String(jtv) + sv.CertificateAuthorityData = ptr.String(jtv) } - case "EnvironmentArn": + case "ClusterStatus": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.EnvironmentArn = ptr.String(jtv) + sv.ClusterStatus = ptr.String(jtv) } - case "EnvironmentId": + case "Endpoint": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.EnvironmentId = ptr.String(jtv) + sv.Endpoint = ptr.String(jtv) } - case "EnvironmentLinks": - if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLinks(&sv.EnvironmentLinks, value); err != nil { + case "Logging": + if err := awsRestjson1_deserializeDocumentAwsEksClusterLoggingDetails(&sv.Logging, value); err != nil { return err } - case "EnvironmentName": + case "Name": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.EnvironmentName = ptr.String(jtv) + sv.Name = ptr.String(jtv) } - case "OptionSettings": - if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSettings(&sv.OptionSettings, value); err != nil { + case "ResourcesVpcConfig": + if err := awsRestjson1_deserializeDocumentAwsEksClusterResourcesVpcConfigDetails(&sv.ResourcesVpcConfig, value); err != nil { return err } - case "PlatformArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.PlatformArn = ptr.String(jtv) - } - - case "SolutionStackName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.SolutionStackName = ptr.String(jtv) - } - - case "Status": + case "RoleArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Status = ptr.String(jtv) - } - - case "Tier": - if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentTier(&sv.Tier, value); err != nil { - return err + sv.RoleArn = ptr.String(jtv) } - case "VersionLabel": + case "Version": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.VersionLabel = ptr.String(jtv) + sv.Version = ptr.String(jtv) } default: @@ -19476,7 +20285,7 @@ func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentDetails(v **t return nil } -func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLink(v **types.AwsElasticBeanstalkEnvironmentEnvironmentLink, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEksClusterLoggingClusterLoggingDetails(v **types.AwsEksClusterLoggingClusterLoggingDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19489,31 +20298,27 @@ func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLi return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElasticBeanstalkEnvironmentEnvironmentLink + var sv *types.AwsEksClusterLoggingClusterLoggingDetails if *v == nil { - sv = &types.AwsElasticBeanstalkEnvironmentEnvironmentLink{} + sv = &types.AwsEksClusterLoggingClusterLoggingDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "EnvironmentName": + case "Enabled": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.EnvironmentName = ptr.String(jtv) + sv.Enabled = jtv } - case "LinkName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.LinkName = ptr.String(jtv) + case "Types": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Types, value); err != nil { + return err } default: @@ -19525,7 +20330,7 @@ func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLi return nil } -func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLinks(v *[]types.AwsElasticBeanstalkEnvironmentEnvironmentLink, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEksClusterLoggingClusterLoggingList(v *[]types.AwsEksClusterLoggingClusterLoggingDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19538,17 +20343,17 @@ func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLi return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsElasticBeanstalkEnvironmentEnvironmentLink + var cv []types.AwsEksClusterLoggingClusterLoggingDetails if *v == nil { - cv = []types.AwsElasticBeanstalkEnvironmentEnvironmentLink{} + cv = []types.AwsEksClusterLoggingClusterLoggingDetails{} } else { cv = *v } for _, value := range shape { - var col types.AwsElasticBeanstalkEnvironmentEnvironmentLink + var col types.AwsEksClusterLoggingClusterLoggingDetails destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLink(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsEksClusterLoggingClusterLoggingDetails(&destAddr, value); err != nil { return err } col = *destAddr @@ -19559,7 +20364,7 @@ func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLi return nil } -func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSetting(v **types.AwsElasticBeanstalkEnvironmentOptionSetting, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEksClusterLoggingDetails(v **types.AwsEksClusterLoggingDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19572,49 +20377,18 @@ func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSetting return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElasticBeanstalkEnvironmentOptionSetting + var sv *types.AwsEksClusterLoggingDetails if *v == nil { - sv = &types.AwsElasticBeanstalkEnvironmentOptionSetting{} + sv = &types.AwsEksClusterLoggingDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Namespace": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Namespace = ptr.String(jtv) - } - - case "OptionName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.OptionName = ptr.String(jtv) - } - - case "ResourceName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.ResourceName = ptr.String(jtv) - } - - case "Value": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Value = ptr.String(jtv) + case "ClusterLogging": + if err := awsRestjson1_deserializeDocumentAwsEksClusterLoggingClusterLoggingList(&sv.ClusterLogging, value); err != nil { + return err } default: @@ -19626,7 +20400,7 @@ func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSetting return nil } -func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSettings(v *[]types.AwsElasticBeanstalkEnvironmentOptionSetting, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsEksClusterResourcesVpcConfigDetails(v **types.AwsEksClusterResourcesVpcConfigDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19634,33 +20408,40 @@ func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSetting return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsElasticBeanstalkEnvironmentOptionSetting + var sv *types.AwsEksClusterResourcesVpcConfigDetails if *v == nil { - cv = []types.AwsElasticBeanstalkEnvironmentOptionSetting{} + sv = &types.AwsEksClusterResourcesVpcConfigDetails{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col types.AwsElasticBeanstalkEnvironmentOptionSetting - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSetting(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + for key, value := range shape { + switch key { + case "SecurityGroupIds": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SecurityGroupIds, value); err != nil { + return err + } + + case "SubnetIds": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SubnetIds, value); err != nil { + return err + } + + default: + _, _ = key, value + } } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentTier(v **types.AwsElasticBeanstalkEnvironmentTier, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentDetails(v **types.AwsElasticBeanstalkEnvironmentDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19673,156 +20454,145 @@ func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentTier(v **type return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElasticBeanstalkEnvironmentTier + var sv *types.AwsElasticBeanstalkEnvironmentDetails if *v == nil { - sv = &types.AwsElasticBeanstalkEnvironmentTier{} + sv = &types.AwsElasticBeanstalkEnvironmentDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Name": + case "ApplicationName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Name = ptr.String(jtv) + sv.ApplicationName = ptr.String(jtv) } - case "Type": + case "Cname": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Type = ptr.String(jtv) + sv.Cname = ptr.String(jtv) } - case "Version": + case "DateCreated": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Version = ptr.String(jtv) + sv.DateCreated = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsElasticsearchDomainDetails(v **types.AwsElasticsearchDomainDetails, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsElasticsearchDomainDetails - if *v == nil { - sv = &types.AwsElasticsearchDomainDetails{} - } else { - sv = *v - } + case "DateUpdated": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DateUpdated = ptr.String(jtv) + } - for key, value := range shape { - switch key { - case "AccessPolicies": + case "Description": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.AccessPolicies = ptr.String(jtv) + sv.Description = ptr.String(jtv) } - case "DomainEndpointOptions": - if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainDomainEndpointOptions(&sv.DomainEndpointOptions, value); err != nil { - return err + case "EndpointUrl": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.EndpointUrl = ptr.String(jtv) } - case "DomainId": + case "EnvironmentArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DomainId = ptr.String(jtv) + sv.EnvironmentArn = ptr.String(jtv) } - case "DomainName": + case "EnvironmentId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DomainName = ptr.String(jtv) + sv.EnvironmentId = ptr.String(jtv) } - case "ElasticsearchClusterConfig": - if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterConfigDetails(&sv.ElasticsearchClusterConfig, value); err != nil { + case "EnvironmentLinks": + if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLinks(&sv.EnvironmentLinks, value); err != nil { return err } - case "ElasticsearchVersion": + case "EnvironmentName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ElasticsearchVersion = ptr.String(jtv) + sv.EnvironmentName = ptr.String(jtv) } - case "EncryptionAtRestOptions": - if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainEncryptionAtRestOptions(&sv.EncryptionAtRestOptions, value); err != nil { + case "OptionSettings": + if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSettings(&sv.OptionSettings, value); err != nil { return err } - case "Endpoint": + case "PlatformArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Endpoint = ptr.String(jtv) - } - - case "Endpoints": - if err := awsRestjson1_deserializeDocumentFieldMap(&sv.Endpoints, value); err != nil { - return err + sv.PlatformArn = ptr.String(jtv) } - case "LogPublishingOptions": - if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptions(&sv.LogPublishingOptions, value); err != nil { - return err + case "SolutionStackName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.SolutionStackName = ptr.String(jtv) } - case "NodeToNodeEncryptionOptions": - if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainNodeToNodeEncryptionOptions(&sv.NodeToNodeEncryptionOptions, value); err != nil { - return err + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Status = ptr.String(jtv) } - case "ServiceSoftwareOptions": - if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainServiceSoftwareOptions(&sv.ServiceSoftwareOptions, value); err != nil { + case "Tier": + if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentTier(&sv.Tier, value); err != nil { return err } - case "VPCOptions": - if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainVPCOptions(&sv.VPCOptions, value); err != nil { - return err + case "VersionLabel": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.VersionLabel = ptr.String(jtv) } default: @@ -19834,7 +20604,7 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainDetails(v **types.Aws return nil } -func awsRestjson1_deserializeDocumentAwsElasticsearchDomainDomainEndpointOptions(v **types.AwsElasticsearchDomainDomainEndpointOptions, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLink(v **types.AwsElasticBeanstalkEnvironmentEnvironmentLink, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19847,31 +20617,31 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainDomainEndpointOptions return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElasticsearchDomainDomainEndpointOptions + var sv *types.AwsElasticBeanstalkEnvironmentEnvironmentLink if *v == nil { - sv = &types.AwsElasticsearchDomainDomainEndpointOptions{} + sv = &types.AwsElasticBeanstalkEnvironmentEnvironmentLink{} } else { sv = *v } for key, value := range shape { switch key { - case "EnforceHTTPS": + case "EnvironmentName": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.EnforceHTTPS = jtv + sv.EnvironmentName = ptr.String(jtv) } - case "TLSSecurityPolicy": + case "LinkName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.TLSSecurityPolicy = ptr.String(jtv) + sv.LinkName = ptr.String(jtv) } default: @@ -19883,7 +20653,41 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainDomainEndpointOptions return nil } -func awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterConfigDetails(v **types.AwsElasticsearchDomainElasticsearchClusterConfigDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLinks(v *[]types.AwsElasticBeanstalkEnvironmentEnvironmentLink, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsElasticBeanstalkEnvironmentEnvironmentLink + if *v == nil { + cv = []types.AwsElasticBeanstalkEnvironmentEnvironmentLink{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsElasticBeanstalkEnvironmentEnvironmentLink + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLink(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSetting(v **types.AwsElasticBeanstalkEnvironmentOptionSetting, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19896,80 +20700,49 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterC return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElasticsearchDomainElasticsearchClusterConfigDetails + var sv *types.AwsElasticBeanstalkEnvironmentOptionSetting if *v == nil { - sv = &types.AwsElasticsearchDomainElasticsearchClusterConfigDetails{} + sv = &types.AwsElasticBeanstalkEnvironmentOptionSetting{} } else { sv = *v } for key, value := range shape { switch key { - case "DedicatedMasterCount": + case "Namespace": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.DedicatedMasterCount = int32(i64) - } - - case "DedicatedMasterEnabled": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.DedicatedMasterEnabled = jtv + sv.Namespace = ptr.String(jtv) } - case "DedicatedMasterType": + case "OptionName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DedicatedMasterType = ptr.String(jtv) - } - - case "InstanceCount": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.InstanceCount = int32(i64) + sv.OptionName = ptr.String(jtv) } - case "InstanceType": + case "ResourceName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.InstanceType = ptr.String(jtv) - } - - case "ZoneAwarenessConfig": - if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails(&sv.ZoneAwarenessConfig, value); err != nil { - return err + sv.ResourceName = ptr.String(jtv) } - case "ZoneAwarenessEnabled": + case "Value": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.ZoneAwarenessEnabled = jtv + sv.Value = ptr.String(jtv) } default: @@ -19981,7 +20754,7 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterC return nil } -func awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails(v **types.AwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSettings(v *[]types.AwsElasticBeanstalkEnvironmentOptionSetting, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19989,43 +20762,33 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterC return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails + var cv []types.AwsElasticBeanstalkEnvironmentOptionSetting if *v == nil { - sv = &types.AwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails{} + cv = []types.AwsElasticBeanstalkEnvironmentOptionSetting{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "AvailabilityZoneCount": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.AvailabilityZoneCount = int32(i64) - } - - default: - _, _ = key, value - + for _, value := range shape { + var col types.AwsElasticBeanstalkEnvironmentOptionSetting + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSetting(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsRestjson1_deserializeDocumentAwsElasticsearchDomainEncryptionAtRestOptions(v **types.AwsElasticsearchDomainEncryptionAtRestOptions, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentTier(v **types.AwsElasticBeanstalkEnvironmentTier, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20038,31 +20801,40 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainEncryptionAtRestOptio return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElasticsearchDomainEncryptionAtRestOptions + var sv *types.AwsElasticBeanstalkEnvironmentTier if *v == nil { - sv = &types.AwsElasticsearchDomainEncryptionAtRestOptions{} + sv = &types.AwsElasticBeanstalkEnvironmentTier{} } else { sv = *v } for key, value := range shape { switch key { - case "Enabled": + case "Name": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Enabled = jtv + sv.Name = ptr.String(jtv) } - case "KmsKeyId": + case "Type": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.KmsKeyId = ptr.String(jtv) + sv.Type = ptr.String(jtv) + } + + case "Version": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Version = ptr.String(jtv) } default: @@ -20074,7 +20846,7 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainEncryptionAtRestOptio return nil } -func awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptions(v **types.AwsElasticsearchDomainLogPublishingOptions, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticsearchDomainDetails(v **types.AwsElasticsearchDomainDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20087,77 +20859,98 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptions( return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElasticsearchDomainLogPublishingOptions + var sv *types.AwsElasticsearchDomainDetails if *v == nil { - sv = &types.AwsElasticsearchDomainLogPublishingOptions{} + sv = &types.AwsElasticsearchDomainDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "AuditLogs": - if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptionsLogConfig(&sv.AuditLogs, value); err != nil { - return err + case "AccessPolicies": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.AccessPolicies = ptr.String(jtv) } - case "IndexSlowLogs": - if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptionsLogConfig(&sv.IndexSlowLogs, value); err != nil { + case "DomainEndpointOptions": + if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainDomainEndpointOptions(&sv.DomainEndpointOptions, value); err != nil { return err } - case "SearchSlowLogs": - if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptionsLogConfig(&sv.SearchSlowLogs, value); err != nil { - return err + case "DomainId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DomainId = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptionsLogConfig(v **types.AwsElasticsearchDomainLogPublishingOptionsLogConfig, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "DomainName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DomainName = ptr.String(jtv) + } - var sv *types.AwsElasticsearchDomainLogPublishingOptionsLogConfig - if *v == nil { - sv = &types.AwsElasticsearchDomainLogPublishingOptionsLogConfig{} - } else { - sv = *v - } + case "ElasticsearchClusterConfig": + if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterConfigDetails(&sv.ElasticsearchClusterConfig, value); err != nil { + return err + } - for key, value := range shape { - switch key { - case "CloudWatchLogsLogGroupArn": + case "ElasticsearchVersion": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CloudWatchLogsLogGroupArn = ptr.String(jtv) + sv.ElasticsearchVersion = ptr.String(jtv) } - case "Enabled": + case "EncryptionAtRestOptions": + if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainEncryptionAtRestOptions(&sv.EncryptionAtRestOptions, value); err != nil { + return err + } + + case "Endpoint": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Enabled = jtv + sv.Endpoint = ptr.String(jtv) + } + + case "Endpoints": + if err := awsRestjson1_deserializeDocumentFieldMap(&sv.Endpoints, value); err != nil { + return err + } + + case "LogPublishingOptions": + if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptions(&sv.LogPublishingOptions, value); err != nil { + return err + } + + case "NodeToNodeEncryptionOptions": + if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainNodeToNodeEncryptionOptions(&sv.NodeToNodeEncryptionOptions, value); err != nil { + return err + } + + case "ServiceSoftwareOptions": + if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainServiceSoftwareOptions(&sv.ServiceSoftwareOptions, value); err != nil { + return err + } + + case "VPCOptions": + if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainVPCOptions(&sv.VPCOptions, value); err != nil { + return err } default: @@ -20169,7 +20962,7 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptionsL return nil } -func awsRestjson1_deserializeDocumentAwsElasticsearchDomainNodeToNodeEncryptionOptions(v **types.AwsElasticsearchDomainNodeToNodeEncryptionOptions, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticsearchDomainDomainEndpointOptions(v **types.AwsElasticsearchDomainDomainEndpointOptions, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20182,22 +20975,31 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainNodeToNodeEncryptionO return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElasticsearchDomainNodeToNodeEncryptionOptions + var sv *types.AwsElasticsearchDomainDomainEndpointOptions if *v == nil { - sv = &types.AwsElasticsearchDomainNodeToNodeEncryptionOptions{} + sv = &types.AwsElasticsearchDomainDomainEndpointOptions{} } else { sv = *v } for key, value := range shape { switch key { - case "Enabled": + case "EnforceHTTPS": if value != nil { jtv, ok := value.(bool) if !ok { return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.Enabled = jtv + sv.EnforceHTTPS = jtv + } + + case "TLSSecurityPolicy": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.TLSSecurityPolicy = ptr.String(jtv) } default: @@ -20209,7 +21011,7 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainNodeToNodeEncryptionO return nil } -func awsRestjson1_deserializeDocumentAwsElasticsearchDomainServiceSoftwareOptions(v **types.AwsElasticsearchDomainServiceSoftwareOptions, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterConfigDetails(v **types.AwsElasticsearchDomainElasticsearchClusterConfigDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20222,76 +21024,80 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainServiceSoftwareOption return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElasticsearchDomainServiceSoftwareOptions + var sv *types.AwsElasticsearchDomainElasticsearchClusterConfigDetails if *v == nil { - sv = &types.AwsElasticsearchDomainServiceSoftwareOptions{} + sv = &types.AwsElasticsearchDomainElasticsearchClusterConfigDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "AutomatedUpdateDate": + case "DedicatedMasterCount": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.AutomatedUpdateDate = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.DedicatedMasterCount = int32(i64) } - case "Cancellable": + case "DedicatedMasterEnabled": if value != nil { jtv, ok := value.(bool) if !ok { return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.Cancellable = jtv + sv.DedicatedMasterEnabled = jtv } - case "CurrentVersion": + case "DedicatedMasterType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CurrentVersion = ptr.String(jtv) + sv.DedicatedMasterType = ptr.String(jtv) } - case "Description": + case "InstanceCount": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.Description = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.InstanceCount = int32(i64) } - case "NewVersion": + case "InstanceType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.NewVersion = ptr.String(jtv) + sv.InstanceType = ptr.String(jtv) } - case "UpdateAvailable": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.UpdateAvailable = jtv + case "ZoneAwarenessConfig": + if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails(&sv.ZoneAwarenessConfig, value); err != nil { + return err } - case "UpdateStatus": + case "ZoneAwarenessEnabled": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.UpdateStatus = ptr.String(jtv) + sv.ZoneAwarenessEnabled = jtv } default: @@ -20303,7 +21109,7 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainServiceSoftwareOption return nil } -func awsRestjson1_deserializeDocumentAwsElasticsearchDomainVPCOptions(v **types.AwsElasticsearchDomainVPCOptions, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails(v **types.AwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20316,37 +21122,26 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainVPCOptions(v **types. return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElasticsearchDomainVPCOptions + var sv *types.AwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails if *v == nil { - sv = &types.AwsElasticsearchDomainVPCOptions{} + sv = &types.AwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "AvailabilityZones": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.AvailabilityZones, value); err != nil { - return err - } - - case "SecurityGroupIds": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SecurityGroupIds, value); err != nil { - return err - } - - case "SubnetIds": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SubnetIds, value); err != nil { - return err - } - - case "VPCId": + case "AvailabilityZoneCount": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.VPCId = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.AvailabilityZoneCount = int32(i64) } default: @@ -20358,41 +21153,7 @@ func awsRestjson1_deserializeDocumentAwsElasticsearchDomainVPCOptions(v **types. return nil } -func awsRestjson1_deserializeDocumentAwsElbAppCookieStickinessPolicies(v *[]types.AwsElbAppCookieStickinessPolicy, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.AwsElbAppCookieStickinessPolicy - if *v == nil { - cv = []types.AwsElbAppCookieStickinessPolicy{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsElbAppCookieStickinessPolicy - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsElbAppCookieStickinessPolicy(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentAwsElbAppCookieStickinessPolicy(v **types.AwsElbAppCookieStickinessPolicy, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticsearchDomainEncryptionAtRestOptions(v **types.AwsElasticsearchDomainEncryptionAtRestOptions, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20405,31 +21166,31 @@ func awsRestjson1_deserializeDocumentAwsElbAppCookieStickinessPolicy(v **types.A return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbAppCookieStickinessPolicy + var sv *types.AwsElasticsearchDomainEncryptionAtRestOptions if *v == nil { - sv = &types.AwsElbAppCookieStickinessPolicy{} + sv = &types.AwsElasticsearchDomainEncryptionAtRestOptions{} } else { sv = *v } for key, value := range shape { switch key { - case "CookieName": + case "Enabled": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.CookieName = ptr.String(jtv) + sv.Enabled = jtv } - case "PolicyName": + case "KmsKeyId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PolicyName = ptr.String(jtv) + sv.KmsKeyId = ptr.String(jtv) } default: @@ -20441,7 +21202,7 @@ func awsRestjson1_deserializeDocumentAwsElbAppCookieStickinessPolicy(v **types.A return nil } -func awsRestjson1_deserializeDocumentAwsElbLbCookieStickinessPolicies(v *[]types.AwsElbLbCookieStickinessPolicy, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptions(v **types.AwsElasticsearchDomainLogPublishingOptions, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20449,33 +21210,45 @@ func awsRestjson1_deserializeDocumentAwsElbLbCookieStickinessPolicies(v *[]types return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsElbLbCookieStickinessPolicy + var sv *types.AwsElasticsearchDomainLogPublishingOptions if *v == nil { - cv = []types.AwsElbLbCookieStickinessPolicy{} + sv = &types.AwsElasticsearchDomainLogPublishingOptions{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col types.AwsElbLbCookieStickinessPolicy - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsElbLbCookieStickinessPolicy(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + for key, value := range shape { + switch key { + case "AuditLogs": + if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptionsLogConfig(&sv.AuditLogs, value); err != nil { + return err + } + + case "IndexSlowLogs": + if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptionsLogConfig(&sv.IndexSlowLogs, value); err != nil { + return err + } + + case "SearchSlowLogs": + if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptionsLogConfig(&sv.SearchSlowLogs, value); err != nil { + return err + } + + default: + _, _ = key, value + } } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentAwsElbLbCookieStickinessPolicy(v **types.AwsElbLbCookieStickinessPolicy, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptionsLogConfig(v **types.AwsElasticsearchDomainLogPublishingOptionsLogConfig, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20488,35 +21261,31 @@ func awsRestjson1_deserializeDocumentAwsElbLbCookieStickinessPolicy(v **types.Aw return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbLbCookieStickinessPolicy + var sv *types.AwsElasticsearchDomainLogPublishingOptionsLogConfig if *v == nil { - sv = &types.AwsElbLbCookieStickinessPolicy{} + sv = &types.AwsElasticsearchDomainLogPublishingOptionsLogConfig{} } else { sv = *v } for key, value := range shape { switch key { - case "CookieExpirationPeriod": + case "CloudWatchLogsLogGroupArn": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Long to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CookieExpirationPeriod = i64 + sv.CloudWatchLogsLogGroupArn = ptr.String(jtv) } - case "PolicyName": + case "Enabled": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.PolicyName = ptr.String(jtv) + sv.Enabled = jtv } default: @@ -20528,7 +21297,7 @@ func awsRestjson1_deserializeDocumentAwsElbLbCookieStickinessPolicy(v **types.Aw return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerAccessLog(v **types.AwsElbLoadBalancerAccessLog, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticsearchDomainNodeToNodeEncryptionOptions(v **types.AwsElasticsearchDomainNodeToNodeEncryptionOptions, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20541,28 +21310,15 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerAccessLog(v **types.AwsEl return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbLoadBalancerAccessLog + var sv *types.AwsElasticsearchDomainNodeToNodeEncryptionOptions if *v == nil { - sv = &types.AwsElbLoadBalancerAccessLog{} + sv = &types.AwsElasticsearchDomainNodeToNodeEncryptionOptions{} } else { sv = *v } for key, value := range shape { switch key { - case "EmitInterval": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.EmitInterval = int32(i64) - } - case "Enabled": if value != nil { jtv, ok := value.(bool) @@ -20572,24 +21328,6 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerAccessLog(v **types.AwsEl sv.Enabled = jtv } - case "S3BucketName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.S3BucketName = ptr.String(jtv) - } - - case "S3BucketPrefix": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.S3BucketPrefix = ptr.String(jtv) - } - default: _, _ = key, value @@ -20599,7 +21337,7 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerAccessLog(v **types.AwsEl return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerAttributes(v **types.AwsElbLoadBalancerAttributes, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticsearchDomainServiceSoftwareOptions(v **types.AwsElasticsearchDomainServiceSoftwareOptions, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20612,33 +21350,76 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerAttributes(v **types.AwsE return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbLoadBalancerAttributes + var sv *types.AwsElasticsearchDomainServiceSoftwareOptions if *v == nil { - sv = &types.AwsElbLoadBalancerAttributes{} + sv = &types.AwsElasticsearchDomainServiceSoftwareOptions{} } else { sv = *v } for key, value := range shape { switch key { - case "AccessLog": - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerAccessLog(&sv.AccessLog, value); err != nil { - return err + case "AutomatedUpdateDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.AutomatedUpdateDate = ptr.String(jtv) } - case "ConnectionDraining": - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionDraining(&sv.ConnectionDraining, value); err != nil { - return err - } + case "Cancellable": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Cancellable = jtv + } - case "ConnectionSettings": - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionSettings(&sv.ConnectionSettings, value); err != nil { - return err + case "CurrentVersion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CurrentVersion = ptr.String(jtv) } - case "CrossZoneLoadBalancing": - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerCrossZoneLoadBalancing(&sv.CrossZoneLoadBalancing, value); err != nil { - return err + case "Description": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Description = ptr.String(jtv) + } + + case "NewVersion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.NewVersion = ptr.String(jtv) + } + + case "UpdateAvailable": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.UpdateAvailable = jtv + } + + case "UpdateStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.UpdateStatus = ptr.String(jtv) } default: @@ -20650,7 +21431,7 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerAttributes(v **types.AwsE return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescription(v **types.AwsElbLoadBalancerBackendServerDescription, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElasticsearchDomainVPCOptions(v **types.AwsElasticsearchDomainVPCOptions, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20663,33 +21444,39 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescription( return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbLoadBalancerBackendServerDescription + var sv *types.AwsElasticsearchDomainVPCOptions if *v == nil { - sv = &types.AwsElbLoadBalancerBackendServerDescription{} + sv = &types.AwsElasticsearchDomainVPCOptions{} } else { sv = *v } for key, value := range shape { switch key { - case "InstancePort": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.InstancePort = int32(i64) + case "AvailabilityZones": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.AvailabilityZones, value); err != nil { + return err } - case "PolicyNames": - if err := awsRestjson1_deserializeDocumentStringList(&sv.PolicyNames, value); err != nil { + case "SecurityGroupIds": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SecurityGroupIds, value); err != nil { + return err + } + + case "SubnetIds": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SubnetIds, value); err != nil { return err } + case "VPCId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.VPCId = ptr.String(jtv) + } + default: _, _ = key, value @@ -20699,7 +21486,7 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescription( return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescriptions(v *[]types.AwsElbLoadBalancerBackendServerDescription, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElbAppCookieStickinessPolicies(v *[]types.AwsElbAppCookieStickinessPolicy, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20712,17 +21499,17 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescriptions return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsElbLoadBalancerBackendServerDescription + var cv []types.AwsElbAppCookieStickinessPolicy if *v == nil { - cv = []types.AwsElbLoadBalancerBackendServerDescription{} + cv = []types.AwsElbAppCookieStickinessPolicy{} } else { cv = *v } for _, value := range shape { - var col types.AwsElbLoadBalancerBackendServerDescription + var col types.AwsElbAppCookieStickinessPolicy destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescription(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsElbAppCookieStickinessPolicy(&destAddr, value); err != nil { return err } col = *destAddr @@ -20733,7 +21520,7 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescriptions return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionDraining(v **types.AwsElbLoadBalancerConnectionDraining, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElbAppCookieStickinessPolicy(v **types.AwsElbAppCookieStickinessPolicy, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20746,35 +21533,31 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionDraining(v **ty return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbLoadBalancerConnectionDraining + var sv *types.AwsElbAppCookieStickinessPolicy if *v == nil { - sv = &types.AwsElbLoadBalancerConnectionDraining{} + sv = &types.AwsElbAppCookieStickinessPolicy{} } else { sv = *v } for key, value := range shape { switch key { - case "Enabled": + case "CookieName": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Enabled = jtv + sv.CookieName = ptr.String(jtv) } - case "Timeout": + case "PolicyName": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Timeout = int32(i64) + sv.PolicyName = ptr.String(jtv) } default: @@ -20786,7 +21569,41 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionDraining(v **ty return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionSettings(v **types.AwsElbLoadBalancerConnectionSettings, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElbLbCookieStickinessPolicies(v *[]types.AwsElbLbCookieStickinessPolicy, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsElbLbCookieStickinessPolicy + if *v == nil { + cv = []types.AwsElbLbCookieStickinessPolicy{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsElbLbCookieStickinessPolicy + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsElbLbCookieStickinessPolicy(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsElbLbCookieStickinessPolicy(v **types.AwsElbLbCookieStickinessPolicy, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20799,26 +21616,35 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionSettings(v **ty return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbLoadBalancerConnectionSettings + var sv *types.AwsElbLbCookieStickinessPolicy if *v == nil { - sv = &types.AwsElbLoadBalancerConnectionSettings{} + sv = &types.AwsElbLbCookieStickinessPolicy{} } else { sv = *v } for key, value := range shape { switch key { - case "IdleTimeout": + case "CookieExpirationPeriod": if value != nil { jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + return fmt.Errorf("expected Long to be json.Number, got %T instead", value) } i64, err := jtv.Int64() if err != nil { return err } - sv.IdleTimeout = int32(i64) + sv.CookieExpirationPeriod = i64 + } + + case "PolicyName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.PolicyName = ptr.String(jtv) } default: @@ -20830,7 +21656,7 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionSettings(v **ty return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerCrossZoneLoadBalancing(v **types.AwsElbLoadBalancerCrossZoneLoadBalancing, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerAccessLog(v **types.AwsElbLoadBalancerAccessLog, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20843,15 +21669,28 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerCrossZoneLoadBalancing(v return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbLoadBalancerCrossZoneLoadBalancing + var sv *types.AwsElbLoadBalancerAccessLog if *v == nil { - sv = &types.AwsElbLoadBalancerCrossZoneLoadBalancing{} + sv = &types.AwsElbLoadBalancerAccessLog{} } else { sv = *v } for key, value := range shape { switch key { + case "EmitInterval": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.EmitInterval = int32(i64) + } + case "Enabled": if value != nil { jtv, ok := value.(bool) @@ -20861,6 +21700,24 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerCrossZoneLoadBalancing(v sv.Enabled = jtv } + case "S3BucketName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.S3BucketName = ptr.String(jtv) + } + + case "S3BucketPrefix": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.S3BucketPrefix = ptr.String(jtv) + } + default: _, _ = key, value @@ -20870,7 +21727,7 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerCrossZoneLoadBalancing(v return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerDetails(v **types.AwsElbLoadBalancerDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerAttributes(v **types.AwsElbLoadBalancerAttributes, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20883,44 +21740,948 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerDetails(v **types.AwsElbL return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbLoadBalancerDetails + var sv *types.AwsElbLoadBalancerAttributes if *v == nil { - sv = &types.AwsElbLoadBalancerDetails{} + sv = &types.AwsElbLoadBalancerAttributes{} } else { sv = *v } for key, value := range shape { switch key { - case "AvailabilityZones": - if err := awsRestjson1_deserializeDocumentStringList(&sv.AvailabilityZones, value); err != nil { + case "AccessLog": + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerAccessLog(&sv.AccessLog, value); err != nil { return err } - case "BackendServerDescriptions": - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescriptions(&sv.BackendServerDescriptions, value); err != nil { + case "ConnectionDraining": + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionDraining(&sv.ConnectionDraining, value); err != nil { return err } - case "CanonicalHostedZoneName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.CanonicalHostedZoneName = ptr.String(jtv) + case "ConnectionSettings": + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionSettings(&sv.ConnectionSettings, value); err != nil { + return err } - case "CanonicalHostedZoneNameID": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.CanonicalHostedZoneNameID = ptr.String(jtv) + case "CrossZoneLoadBalancing": + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerCrossZoneLoadBalancing(&sv.CrossZoneLoadBalancing, value); err != nil { + return err } - case "CreatedTime": + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescription(v **types.AwsElbLoadBalancerBackendServerDescription, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsElbLoadBalancerBackendServerDescription + if *v == nil { + sv = &types.AwsElbLoadBalancerBackendServerDescription{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "InstancePort": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.InstancePort = int32(i64) + } + + case "PolicyNames": + if err := awsRestjson1_deserializeDocumentStringList(&sv.PolicyNames, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescriptions(v *[]types.AwsElbLoadBalancerBackendServerDescription, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsElbLoadBalancerBackendServerDescription + if *v == nil { + cv = []types.AwsElbLoadBalancerBackendServerDescription{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsElbLoadBalancerBackendServerDescription + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescription(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionDraining(v **types.AwsElbLoadBalancerConnectionDraining, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsElbLoadBalancerConnectionDraining + if *v == nil { + sv = &types.AwsElbLoadBalancerConnectionDraining{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Enabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Enabled = jtv + } + + case "Timeout": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Timeout = int32(i64) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionSettings(v **types.AwsElbLoadBalancerConnectionSettings, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsElbLoadBalancerConnectionSettings + if *v == nil { + sv = &types.AwsElbLoadBalancerConnectionSettings{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "IdleTimeout": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.IdleTimeout = int32(i64) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerCrossZoneLoadBalancing(v **types.AwsElbLoadBalancerCrossZoneLoadBalancing, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsElbLoadBalancerCrossZoneLoadBalancing + if *v == nil { + sv = &types.AwsElbLoadBalancerCrossZoneLoadBalancing{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Enabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Enabled = jtv + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerDetails(v **types.AwsElbLoadBalancerDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsElbLoadBalancerDetails + if *v == nil { + sv = &types.AwsElbLoadBalancerDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AvailabilityZones": + if err := awsRestjson1_deserializeDocumentStringList(&sv.AvailabilityZones, value); err != nil { + return err + } + + case "BackendServerDescriptions": + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescriptions(&sv.BackendServerDescriptions, value); err != nil { + return err + } + + case "CanonicalHostedZoneName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CanonicalHostedZoneName = ptr.String(jtv) + } + + case "CanonicalHostedZoneNameID": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CanonicalHostedZoneNameID = ptr.String(jtv) + } + + case "CreatedTime": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CreatedTime = ptr.String(jtv) + } + + case "DnsName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DnsName = ptr.String(jtv) + } + + case "HealthCheck": + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerHealthCheck(&sv.HealthCheck, value); err != nil { + return err + } + + case "Instances": + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstances(&sv.Instances, value); err != nil { + return err + } + + case "ListenerDescriptions": + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescriptions(&sv.ListenerDescriptions, value); err != nil { + return err + } + + case "LoadBalancerAttributes": + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerAttributes(&sv.LoadBalancerAttributes, value); err != nil { + return err + } + + case "LoadBalancerName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.LoadBalancerName = ptr.String(jtv) + } + + case "Policies": + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerPolicies(&sv.Policies, value); err != nil { + return err + } + + case "Scheme": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Scheme = ptr.String(jtv) + } + + case "SecurityGroups": + if err := awsRestjson1_deserializeDocumentStringList(&sv.SecurityGroups, value); err != nil { + return err + } + + case "SourceSecurityGroup": + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerSourceSecurityGroup(&sv.SourceSecurityGroup, value); err != nil { + return err + } + + case "Subnets": + if err := awsRestjson1_deserializeDocumentStringList(&sv.Subnets, value); err != nil { + return err + } + + case "VpcId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.VpcId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerHealthCheck(v **types.AwsElbLoadBalancerHealthCheck, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsElbLoadBalancerHealthCheck + if *v == nil { + sv = &types.AwsElbLoadBalancerHealthCheck{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "HealthyThreshold": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.HealthyThreshold = int32(i64) + } + + case "Interval": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Interval = int32(i64) + } + + case "Target": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Target = ptr.String(jtv) + } + + case "Timeout": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Timeout = int32(i64) + } + + case "UnhealthyThreshold": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.UnhealthyThreshold = int32(i64) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstance(v **types.AwsElbLoadBalancerInstance, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsElbLoadBalancerInstance + if *v == nil { + sv = &types.AwsElbLoadBalancerInstance{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "InstanceId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.InstanceId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstances(v *[]types.AwsElbLoadBalancerInstance, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsElbLoadBalancerInstance + if *v == nil { + cv = []types.AwsElbLoadBalancerInstance{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsElbLoadBalancerInstance + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstance(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListener(v **types.AwsElbLoadBalancerListener, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsElbLoadBalancerListener + if *v == nil { + sv = &types.AwsElbLoadBalancerListener{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "InstancePort": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.InstancePort = int32(i64) + } + + case "InstanceProtocol": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.InstanceProtocol = ptr.String(jtv) + } + + case "LoadBalancerPort": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.LoadBalancerPort = int32(i64) + } + + case "Protocol": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Protocol = ptr.String(jtv) + } + + case "SslCertificateId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.SslCertificateId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescription(v **types.AwsElbLoadBalancerListenerDescription, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsElbLoadBalancerListenerDescription + if *v == nil { + sv = &types.AwsElbLoadBalancerListenerDescription{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Listener": + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerListener(&sv.Listener, value); err != nil { + return err + } + + case "PolicyNames": + if err := awsRestjson1_deserializeDocumentStringList(&sv.PolicyNames, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescriptions(v *[]types.AwsElbLoadBalancerListenerDescription, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsElbLoadBalancerListenerDescription + if *v == nil { + cv = []types.AwsElbLoadBalancerListenerDescription{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsElbLoadBalancerListenerDescription + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescription(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerPolicies(v **types.AwsElbLoadBalancerPolicies, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsElbLoadBalancerPolicies + if *v == nil { + sv = &types.AwsElbLoadBalancerPolicies{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AppCookieStickinessPolicies": + if err := awsRestjson1_deserializeDocumentAwsElbAppCookieStickinessPolicies(&sv.AppCookieStickinessPolicies, value); err != nil { + return err + } + + case "LbCookieStickinessPolicies": + if err := awsRestjson1_deserializeDocumentAwsElbLbCookieStickinessPolicies(&sv.LbCookieStickinessPolicies, value); err != nil { + return err + } + + case "OtherPolicies": + if err := awsRestjson1_deserializeDocumentStringList(&sv.OtherPolicies, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsElbLoadBalancerSourceSecurityGroup(v **types.AwsElbLoadBalancerSourceSecurityGroup, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsElbLoadBalancerSourceSecurityGroup + if *v == nil { + sv = &types.AwsElbLoadBalancerSourceSecurityGroup{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "GroupName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.GroupName = ptr.String(jtv) + } + + case "OwnerAlias": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.OwnerAlias = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsElbv2LoadBalancerAttribute(v **types.AwsElbv2LoadBalancerAttribute, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsElbv2LoadBalancerAttribute + if *v == nil { + sv = &types.AwsElbv2LoadBalancerAttribute{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Key": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Key = ptr.String(jtv) + } + + case "Value": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Value = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsElbv2LoadBalancerAttributes(v *[]types.AwsElbv2LoadBalancerAttribute, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsElbv2LoadBalancerAttribute + if *v == nil { + cv = []types.AwsElbv2LoadBalancerAttribute{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsElbv2LoadBalancerAttribute + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsElbv2LoadBalancerAttribute(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsElbv2LoadBalancerDetails(v **types.AwsElbv2LoadBalancerDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsElbv2LoadBalancerDetails + if *v == nil { + sv = &types.AwsElbv2LoadBalancerDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AvailabilityZones": + if err := awsRestjson1_deserializeDocumentAvailabilityZones(&sv.AvailabilityZones, value); err != nil { + return err + } + + case "CanonicalHostedZoneId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CanonicalHostedZoneId = ptr.String(jtv) + } + + case "CreatedTime": if value != nil { jtv, ok := value.(string) if !ok { @@ -20929,80 +22690,262 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerDetails(v **types.AwsElbL sv.CreatedTime = ptr.String(jtv) } - case "DnsName": + case "DNSName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DnsName = ptr.String(jtv) + sv.DNSName = ptr.String(jtv) } - case "HealthCheck": - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerHealthCheck(&sv.HealthCheck, value); err != nil { - return err + case "IpAddressType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.IpAddressType = ptr.String(jtv) } - case "Instances": - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstances(&sv.Instances, value); err != nil { + case "LoadBalancerAttributes": + if err := awsRestjson1_deserializeDocumentAwsElbv2LoadBalancerAttributes(&sv.LoadBalancerAttributes, value); err != nil { return err } - case "ListenerDescriptions": - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescriptions(&sv.ListenerDescriptions, value); err != nil { + case "Scheme": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Scheme = ptr.String(jtv) + } + + case "SecurityGroups": + if err := awsRestjson1_deserializeDocumentSecurityGroups(&sv.SecurityGroups, value); err != nil { return err } - case "LoadBalancerAttributes": - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerAttributes(&sv.LoadBalancerAttributes, value); err != nil { + case "State": + if err := awsRestjson1_deserializeDocumentLoadBalancerState(&sv.State, value); err != nil { return err } - case "LoadBalancerName": + case "Type": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.LoadBalancerName = ptr.String(jtv) + sv.Type = ptr.String(jtv) } - case "Policies": - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerPolicies(&sv.Policies, value); err != nil { - return err + case "VpcId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.VpcId = ptr.String(jtv) } - case "Scheme": + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsIamAccessKeyDetails(v **types.AwsIamAccessKeyDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsIamAccessKeyDetails + if *v == nil { + sv = &types.AwsIamAccessKeyDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AccessKeyId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Scheme = ptr.String(jtv) + sv.AccessKeyId = ptr.String(jtv) } - case "SecurityGroups": - if err := awsRestjson1_deserializeDocumentStringList(&sv.SecurityGroups, value); err != nil { + case "AccountId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.AccountId = ptr.String(jtv) + } + + case "CreatedAt": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CreatedAt = ptr.String(jtv) + } + + case "PrincipalId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.PrincipalId = ptr.String(jtv) + } + + case "PrincipalName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.PrincipalName = ptr.String(jtv) + } + + case "PrincipalType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.PrincipalType = ptr.String(jtv) + } + + case "SessionContext": + if err := awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContext(&sv.SessionContext, value); err != nil { return err } - case "SourceSecurityGroup": - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerSourceSecurityGroup(&sv.SourceSecurityGroup, value); err != nil { + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AwsIamAccessKeyStatus to be of type string, got %T instead", value) + } + sv.Status = types.AwsIamAccessKeyStatus(jtv) + } + + case "UserName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.UserName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContext(v **types.AwsIamAccessKeySessionContext, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsIamAccessKeySessionContext + if *v == nil { + sv = &types.AwsIamAccessKeySessionContext{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Attributes": + if err := awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContextAttributes(&sv.Attributes, value); err != nil { return err } - case "Subnets": - if err := awsRestjson1_deserializeDocumentStringList(&sv.Subnets, value); err != nil { + case "SessionIssuer": + if err := awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContextSessionIssuer(&sv.SessionIssuer, value); err != nil { return err } - case "VpcId": + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContextAttributes(v **types.AwsIamAccessKeySessionContextAttributes, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsIamAccessKeySessionContextAttributes + if *v == nil { + sv = &types.AwsIamAccessKeySessionContextAttributes{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "CreationDate": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.VpcId = ptr.String(jtv) + sv.CreationDate = ptr.String(jtv) + } + + case "MfaAuthenticated": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.MfaAuthenticated = jtv } default: @@ -21014,7 +22957,7 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerDetails(v **types.AwsElbL return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerHealthCheck(v **types.AwsElbLoadBalancerHealthCheck, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContextSessionIssuer(v **types.AwsIamAccessKeySessionContextSessionIssuer, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21027,74 +22970,58 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerHealthCheck(v **types.Aws return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbLoadBalancerHealthCheck + var sv *types.AwsIamAccessKeySessionContextSessionIssuer if *v == nil { - sv = &types.AwsElbLoadBalancerHealthCheck{} + sv = &types.AwsIamAccessKeySessionContextSessionIssuer{} } else { sv = *v } for key, value := range shape { switch key { - case "HealthyThreshold": + case "AccountId": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.HealthyThreshold = int32(i64) + sv.AccountId = ptr.String(jtv) } - case "Interval": + case "Arn": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Interval = int32(i64) + sv.Arn = ptr.String(jtv) } - case "Target": + case "PrincipalId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Target = ptr.String(jtv) + sv.PrincipalId = ptr.String(jtv) } - case "Timeout": + case "Type": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Timeout = int32(i64) + sv.Type = ptr.String(jtv) } - case "UnhealthyThreshold": + case "UserName": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.UnhealthyThreshold = int32(i64) + sv.UserName = ptr.String(jtv) } default: @@ -21106,7 +23033,7 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerHealthCheck(v **types.Aws return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstance(v **types.AwsElbLoadBalancerInstance, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicy(v **types.AwsIamAttachedManagedPolicy, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21119,22 +23046,31 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstance(v **types.AwsElb return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbLoadBalancerInstance + var sv *types.AwsIamAttachedManagedPolicy if *v == nil { - sv = &types.AwsElbLoadBalancerInstance{} + sv = &types.AwsIamAttachedManagedPolicy{} } else { sv = *v } for key, value := range shape { switch key { - case "InstanceId": + case "PolicyArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.InstanceId = ptr.String(jtv) + sv.PolicyArn = ptr.String(jtv) + } + + case "PolicyName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.PolicyName = ptr.String(jtv) } default: @@ -21146,7 +23082,7 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstance(v **types.AwsElb return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstances(v *[]types.AwsElbLoadBalancerInstance, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicyList(v *[]types.AwsIamAttachedManagedPolicy, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21159,17 +23095,17 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstances(v *[]types.AwsE return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsElbLoadBalancerInstance + var cv []types.AwsIamAttachedManagedPolicy if *v == nil { - cv = []types.AwsElbLoadBalancerInstance{} + cv = []types.AwsIamAttachedManagedPolicy{} } else { cv = *v } for _, value := range shape { - var col types.AwsElbLoadBalancerInstance + var col types.AwsIamAttachedManagedPolicy destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstance(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicy(&destAddr, value); err != nil { return err } col = *destAddr @@ -21180,7 +23116,7 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstances(v *[]types.AwsE return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListener(v **types.AwsElbLoadBalancerListener, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamGroupDetails(v **types.AwsIamGroupDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21193,66 +23129,59 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListener(v **types.AwsElb return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbLoadBalancerListener + var sv *types.AwsIamGroupDetails if *v == nil { - sv = &types.AwsElbLoadBalancerListener{} + sv = &types.AwsIamGroupDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "InstancePort": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.InstancePort = int32(i64) + case "AttachedManagedPolicies": + if err := awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicyList(&sv.AttachedManagedPolicies, value); err != nil { + return err } - case "InstanceProtocol": + case "CreateDate": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.InstanceProtocol = ptr.String(jtv) + sv.CreateDate = ptr.String(jtv) } - case "LoadBalancerPort": + case "GroupId": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.LoadBalancerPort = int32(i64) + sv.GroupId = ptr.String(jtv) } - case "Protocol": + case "GroupName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Protocol = ptr.String(jtv) + sv.GroupName = ptr.String(jtv) } - case "SslCertificateId": + case "GroupPolicyList": + if err := awsRestjson1_deserializeDocumentAwsIamGroupPolicyList(&sv.GroupPolicyList, value); err != nil { + return err + } + + case "Path": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.SslCertificateId = ptr.String(jtv) + sv.Path = ptr.String(jtv) } default: @@ -21264,7 +23193,7 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListener(v **types.AwsElb return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescription(v **types.AwsElbLoadBalancerListenerDescription, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamGroupPolicy(v **types.AwsIamGroupPolicy, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21277,23 +23206,22 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescription(v **t return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbLoadBalancerListenerDescription + var sv *types.AwsIamGroupPolicy if *v == nil { - sv = &types.AwsElbLoadBalancerListenerDescription{} + sv = &types.AwsIamGroupPolicy{} } else { sv = *v } for key, value := range shape { switch key { - case "Listener": - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerListener(&sv.Listener, value); err != nil { - return err - } - - case "PolicyNames": - if err := awsRestjson1_deserializeDocumentStringList(&sv.PolicyNames, value); err != nil { - return err + case "PolicyName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.PolicyName = ptr.String(jtv) } default: @@ -21305,7 +23233,7 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescription(v **t return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescriptions(v *[]types.AwsElbLoadBalancerListenerDescription, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamGroupPolicyList(v *[]types.AwsIamGroupPolicy, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21318,17 +23246,17 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescriptions(v *[ return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsElbLoadBalancerListenerDescription + var cv []types.AwsIamGroupPolicy if *v == nil { - cv = []types.AwsElbLoadBalancerListenerDescription{} + cv = []types.AwsIamGroupPolicy{} } else { cv = *v } for _, value := range shape { - var col types.AwsElbLoadBalancerListenerDescription + var col types.AwsIamGroupPolicy destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescription(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsIamGroupPolicy(&destAddr, value); err != nil { return err } col = *destAddr @@ -21339,7 +23267,7 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescriptions(v *[ return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerPolicies(v **types.AwsElbLoadBalancerPolicies, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamInstanceProfile(v **types.AwsIamInstanceProfile, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21352,27 +23280,62 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerPolicies(v **types.AwsElb return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbLoadBalancerPolicies + var sv *types.AwsIamInstanceProfile if *v == nil { - sv = &types.AwsElbLoadBalancerPolicies{} + sv = &types.AwsIamInstanceProfile{} } else { sv = *v } for key, value := range shape { switch key { - case "AppCookieStickinessPolicies": - if err := awsRestjson1_deserializeDocumentAwsElbAppCookieStickinessPolicies(&sv.AppCookieStickinessPolicies, value); err != nil { - return err + case "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) } - case "LbCookieStickinessPolicies": - if err := awsRestjson1_deserializeDocumentAwsElbLbCookieStickinessPolicies(&sv.LbCookieStickinessPolicies, value); err != nil { - return err + case "CreateDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CreateDate = ptr.String(jtv) } - case "OtherPolicies": - if err := awsRestjson1_deserializeDocumentStringList(&sv.OtherPolicies, value); err != nil { + case "InstanceProfileId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.InstanceProfileId = ptr.String(jtv) + } + + case "InstanceProfileName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.InstanceProfileName = ptr.String(jtv) + } + + case "Path": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Path = ptr.String(jtv) + } + + case "Roles": + if err := awsRestjson1_deserializeDocumentAwsIamInstanceProfileRoles(&sv.Roles, value); err != nil { return err } @@ -21385,56 +23348,41 @@ func awsRestjson1_deserializeDocumentAwsElbLoadBalancerPolicies(v **types.AwsElb return nil } -func awsRestjson1_deserializeDocumentAwsElbLoadBalancerSourceSecurityGroup(v **types.AwsElbLoadBalancerSourceSecurityGroup, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamInstanceProfileList(v *[]types.AwsIamInstanceProfile, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } if value == nil { return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsElbLoadBalancerSourceSecurityGroup - if *v == nil { - sv = &types.AwsElbLoadBalancerSourceSecurityGroup{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "GroupName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.GroupName = ptr.String(jtv) - } - - case "OwnerAlias": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.OwnerAlias = ptr.String(jtv) - } + } - default: - _, _ = key, value + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsIamInstanceProfile + if *v == nil { + cv = []types.AwsIamInstanceProfile{} + } else { + cv = *v + } + for _, value := range shape { + var col types.AwsIamInstanceProfile + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsIamInstanceProfile(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsRestjson1_deserializeDocumentAwsElbv2LoadBalancerDetails(v **types.AwsElbv2LoadBalancerDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamInstanceProfileRole(v **types.AwsIamInstanceProfileRole, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21447,91 +23395,150 @@ func awsRestjson1_deserializeDocumentAwsElbv2LoadBalancerDetails(v **types.AwsEl return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsElbv2LoadBalancerDetails + var sv *types.AwsIamInstanceProfileRole if *v == nil { - sv = &types.AwsElbv2LoadBalancerDetails{} + sv = &types.AwsIamInstanceProfileRole{} } else { sv = *v } for key, value := range shape { switch key { - case "AvailabilityZones": - if err := awsRestjson1_deserializeDocumentAvailabilityZones(&sv.AvailabilityZones, value); err != nil { - return err + case "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) } - case "CanonicalHostedZoneId": + case "AssumeRolePolicyDocument": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected AwsIamRoleAssumeRolePolicyDocument to be of type string, got %T instead", value) } - sv.CanonicalHostedZoneId = ptr.String(jtv) + sv.AssumeRolePolicyDocument = ptr.String(jtv) } - case "CreatedTime": + case "CreateDate": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CreatedTime = ptr.String(jtv) + sv.CreateDate = ptr.String(jtv) } - case "DNSName": + case "Path": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DNSName = ptr.String(jtv) + sv.Path = ptr.String(jtv) } - case "IpAddressType": + case "RoleId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.IpAddressType = ptr.String(jtv) + sv.RoleId = ptr.String(jtv) } - case "Scheme": + case "RoleName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Scheme = ptr.String(jtv) + sv.RoleName = ptr.String(jtv) } - case "SecurityGroups": - if err := awsRestjson1_deserializeDocumentSecurityGroups(&sv.SecurityGroups, value); err != nil { - return err - } + default: + _, _ = key, value - case "State": - if err := awsRestjson1_deserializeDocumentLoadBalancerState(&sv.State, value); err != nil { - return err - } + } + } + *v = sv + return nil +} - case "Type": +func awsRestjson1_deserializeDocumentAwsIamInstanceProfileRoles(v *[]types.AwsIamInstanceProfileRole, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsIamInstanceProfileRole + if *v == nil { + cv = []types.AwsIamInstanceProfileRole{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsIamInstanceProfileRole + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsIamInstanceProfileRole(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsIamPermissionsBoundary(v **types.AwsIamPermissionsBoundary, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsIamPermissionsBoundary + if *v == nil { + sv = &types.AwsIamPermissionsBoundary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "PermissionsBoundaryArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Type = ptr.String(jtv) + sv.PermissionsBoundaryArn = ptr.String(jtv) } - case "VpcId": + case "PermissionsBoundaryType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.VpcId = ptr.String(jtv) + sv.PermissionsBoundaryType = ptr.String(jtv) } default: @@ -21543,7 +23550,7 @@ func awsRestjson1_deserializeDocumentAwsElbv2LoadBalancerDetails(v **types.AwsEl return nil } -func awsRestjson1_deserializeDocumentAwsIamAccessKeyDetails(v **types.AwsIamAccessKeyDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamPolicyDetails(v **types.AwsIamPolicyDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21556,90 +23563,116 @@ func awsRestjson1_deserializeDocumentAwsIamAccessKeyDetails(v **types.AwsIamAcce return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamAccessKeyDetails + var sv *types.AwsIamPolicyDetails if *v == nil { - sv = &types.AwsIamAccessKeyDetails{} + sv = &types.AwsIamPolicyDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "AccessKeyId": + case "AttachmentCount": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.AccessKeyId = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.AttachmentCount = int32(i64) } - case "AccountId": + case "CreateDate": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.AccountId = ptr.String(jtv) + sv.CreateDate = ptr.String(jtv) } - case "CreatedAt": + case "DefaultVersionId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CreatedAt = ptr.String(jtv) + sv.DefaultVersionId = ptr.String(jtv) } - case "PrincipalId": + case "Description": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PrincipalId = ptr.String(jtv) + sv.Description = ptr.String(jtv) } - case "PrincipalName": + case "IsAttachable": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.PrincipalName = ptr.String(jtv) + sv.IsAttachable = jtv } - case "PrincipalType": + case "Path": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PrincipalType = ptr.String(jtv) + sv.Path = ptr.String(jtv) } - case "SessionContext": - if err := awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContext(&sv.SessionContext, value); err != nil { - return err + case "PermissionsBoundaryUsageCount": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.PermissionsBoundaryUsageCount = int32(i64) } - case "Status": + case "PolicyId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected AwsIamAccessKeyStatus to be of type string, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Status = types.AwsIamAccessKeyStatus(jtv) + sv.PolicyId = ptr.String(jtv) } - case "UserName": + case "PolicyName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.UserName = ptr.String(jtv) + sv.PolicyName = ptr.String(jtv) + } + + case "PolicyVersionList": + if err := awsRestjson1_deserializeDocumentAwsIamPolicyVersionList(&sv.PolicyVersionList, value); err != nil { + return err + } + + case "UpdateDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.UpdateDate = ptr.String(jtv) } default: @@ -21651,7 +23684,7 @@ func awsRestjson1_deserializeDocumentAwsIamAccessKeyDetails(v **types.AwsIamAcce return nil } -func awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContext(v **types.AwsIamAccessKeySessionContext, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamPolicyVersion(v **types.AwsIamPolicyVersion, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21664,23 +23697,40 @@ func awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContext(v **types.Aws return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamAccessKeySessionContext + var sv *types.AwsIamPolicyVersion if *v == nil { - sv = &types.AwsIamAccessKeySessionContext{} + sv = &types.AwsIamPolicyVersion{} } else { sv = *v } for key, value := range shape { switch key { - case "Attributes": - if err := awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContextAttributes(&sv.Attributes, value); err != nil { - return err + case "CreateDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CreateDate = ptr.String(jtv) } - case "SessionIssuer": - if err := awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContextSessionIssuer(&sv.SessionIssuer, value); err != nil { - return err + case "IsDefaultVersion": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.IsDefaultVersion = jtv + } + + case "VersionId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.VersionId = ptr.String(jtv) } default: @@ -21692,7 +23742,7 @@ func awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContext(v **types.Aws return nil } -func awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContextAttributes(v **types.AwsIamAccessKeySessionContextAttributes, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamPolicyVersionList(v *[]types.AwsIamPolicyVersion, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21700,48 +23750,33 @@ func awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContextAttributes(v * return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamAccessKeySessionContextAttributes + var cv []types.AwsIamPolicyVersion if *v == nil { - sv = &types.AwsIamAccessKeySessionContextAttributes{} + cv = []types.AwsIamPolicyVersion{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "CreationDate": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.CreationDate = ptr.String(jtv) - } - - case "MfaAuthenticated": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.MfaAuthenticated = jtv - } - - default: - _, _ = key, value - + for _, value := range shape { + var col types.AwsIamPolicyVersion + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsIamPolicyVersion(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContextSessionIssuer(v **types.AwsIamAccessKeySessionContextSessionIssuer, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamRoleDetails(v **types.AwsIamRoleDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21754,58 +23789,91 @@ func awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContextSessionIssuer( return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamAccessKeySessionContextSessionIssuer + var sv *types.AwsIamRoleDetails if *v == nil { - sv = &types.AwsIamAccessKeySessionContextSessionIssuer{} + sv = &types.AwsIamRoleDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "AccountId": + case "AssumeRolePolicyDocument": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected AwsIamRoleAssumeRolePolicyDocument to be of type string, got %T instead", value) } - sv.AccountId = ptr.String(jtv) + sv.AssumeRolePolicyDocument = ptr.String(jtv) } - case "Arn": + case "AttachedManagedPolicies": + if err := awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicyList(&sv.AttachedManagedPolicies, value); err != nil { + return err + } + + case "CreateDate": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Arn = ptr.String(jtv) + sv.CreateDate = ptr.String(jtv) } - case "PrincipalId": + case "InstanceProfileList": + if err := awsRestjson1_deserializeDocumentAwsIamInstanceProfileList(&sv.InstanceProfileList, value); err != nil { + return err + } + + case "MaxSessionDuration": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.MaxSessionDuration = int32(i64) + } + + case "Path": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PrincipalId = ptr.String(jtv) + sv.Path = ptr.String(jtv) } - case "Type": + case "PermissionsBoundary": + if err := awsRestjson1_deserializeDocumentAwsIamPermissionsBoundary(&sv.PermissionsBoundary, value); err != nil { + return err + } + + case "RoleId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Type = ptr.String(jtv) + sv.RoleId = ptr.String(jtv) } - case "UserName": + case "RoleName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.UserName = ptr.String(jtv) + sv.RoleName = ptr.String(jtv) + } + + case "RolePolicyList": + if err := awsRestjson1_deserializeDocumentAwsIamRolePolicyList(&sv.RolePolicyList, value); err != nil { + return err } default: @@ -21817,7 +23885,7 @@ func awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContextSessionIssuer( return nil } -func awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicy(v **types.AwsIamAttachedManagedPolicy, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamRolePolicy(v **types.AwsIamRolePolicy, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21830,24 +23898,15 @@ func awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicy(v **types.AwsIa return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamAttachedManagedPolicy + var sv *types.AwsIamRolePolicy if *v == nil { - sv = &types.AwsIamAttachedManagedPolicy{} + sv = &types.AwsIamRolePolicy{} } else { sv = *v } for key, value := range shape { switch key { - case "PolicyArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.PolicyArn = ptr.String(jtv) - } - case "PolicyName": if value != nil { jtv, ok := value.(string) @@ -21866,7 +23925,7 @@ func awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicy(v **types.AwsIa return nil } -func awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicyList(v *[]types.AwsIamAttachedManagedPolicy, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamRolePolicyList(v *[]types.AwsIamRolePolicy, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21879,17 +23938,17 @@ func awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicyList(v *[]types. return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsIamAttachedManagedPolicy + var cv []types.AwsIamRolePolicy if *v == nil { - cv = []types.AwsIamAttachedManagedPolicy{} + cv = []types.AwsIamRolePolicy{} } else { cv = *v } for _, value := range shape { - var col types.AwsIamAttachedManagedPolicy + var col types.AwsIamRolePolicy destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicy(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsIamRolePolicy(&destAddr, value); err != nil { return err } col = *destAddr @@ -21900,7 +23959,7 @@ func awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicyList(v *[]types. return nil } -func awsRestjson1_deserializeDocumentAwsIamGroupDetails(v **types.AwsIamGroupDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamUserDetails(v **types.AwsIamUserDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21913,9 +23972,9 @@ func awsRestjson1_deserializeDocumentAwsIamGroupDetails(v **types.AwsIamGroupDet return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamGroupDetails + var sv *types.AwsIamUserDetails if *v == nil { - sv = &types.AwsIamGroupDetails{} + sv = &types.AwsIamUserDetails{} } else { sv = *v } @@ -21936,36 +23995,46 @@ func awsRestjson1_deserializeDocumentAwsIamGroupDetails(v **types.AwsIamGroupDet sv.CreateDate = ptr.String(jtv) } - case "GroupId": + case "GroupList": + if err := awsRestjson1_deserializeDocumentStringList(&sv.GroupList, value); err != nil { + return err + } + + case "Path": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.GroupId = ptr.String(jtv) + sv.Path = ptr.String(jtv) } - case "GroupName": + case "PermissionsBoundary": + if err := awsRestjson1_deserializeDocumentAwsIamPermissionsBoundary(&sv.PermissionsBoundary, value); err != nil { + return err + } + + case "UserId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.GroupName = ptr.String(jtv) - } - - case "GroupPolicyList": - if err := awsRestjson1_deserializeDocumentAwsIamGroupPolicyList(&sv.GroupPolicyList, value); err != nil { - return err + sv.UserId = ptr.String(jtv) } - case "Path": + case "UserName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Path = ptr.String(jtv) + sv.UserName = ptr.String(jtv) + } + + case "UserPolicyList": + if err := awsRestjson1_deserializeDocumentAwsIamUserPolicyList(&sv.UserPolicyList, value); err != nil { + return err } default: @@ -21977,7 +24046,7 @@ func awsRestjson1_deserializeDocumentAwsIamGroupDetails(v **types.AwsIamGroupDet return nil } -func awsRestjson1_deserializeDocumentAwsIamGroupPolicy(v **types.AwsIamGroupPolicy, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamUserPolicy(v **types.AwsIamUserPolicy, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21990,9 +24059,9 @@ func awsRestjson1_deserializeDocumentAwsIamGroupPolicy(v **types.AwsIamGroupPoli return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamGroupPolicy + var sv *types.AwsIamUserPolicy if *v == nil { - sv = &types.AwsIamGroupPolicy{} + sv = &types.AwsIamUserPolicy{} } else { sv = *v } @@ -22017,7 +24086,7 @@ func awsRestjson1_deserializeDocumentAwsIamGroupPolicy(v **types.AwsIamGroupPoli return nil } -func awsRestjson1_deserializeDocumentAwsIamGroupPolicyList(v *[]types.AwsIamGroupPolicy, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsIamUserPolicyList(v *[]types.AwsIamUserPolicy, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22030,17 +24099,17 @@ func awsRestjson1_deserializeDocumentAwsIamGroupPolicyList(v *[]types.AwsIamGrou return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsIamGroupPolicy + var cv []types.AwsIamUserPolicy if *v == nil { - cv = []types.AwsIamGroupPolicy{} + cv = []types.AwsIamUserPolicy{} } else { cv = *v } for _, value := range shape { - var col types.AwsIamGroupPolicy + var col types.AwsIamUserPolicy destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsIamGroupPolicy(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsIamUserPolicy(&destAddr, value); err != nil { return err } col = *destAddr @@ -22051,7 +24120,7 @@ func awsRestjson1_deserializeDocumentAwsIamGroupPolicyList(v *[]types.AwsIamGrou return nil } -func awsRestjson1_deserializeDocumentAwsIamInstanceProfile(v **types.AwsIamInstanceProfile, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsKmsKeyDetails(v **types.AwsKmsKeyDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22064,63 +24133,110 @@ func awsRestjson1_deserializeDocumentAwsIamInstanceProfile(v **types.AwsIamInsta return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamInstanceProfile + var sv *types.AwsKmsKeyDetails if *v == nil { - sv = &types.AwsIamInstanceProfile{} + sv = &types.AwsKmsKeyDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Arn": + case "AWSAccountId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Arn = ptr.String(jtv) + sv.AWSAccountId = ptr.String(jtv) } - case "CreateDate": + case "CreationDate": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CreationDate = f64 + + case string: + var f64 float64 + switch { + case strings.EqualFold(jtv, "NaN"): + f64 = math.NaN() + + case strings.EqualFold(jtv, "Infinity"): + f64 = math.Inf(1) + + case strings.EqualFold(jtv, "-Infinity"): + f64 = math.Inf(-1) + + default: + return fmt.Errorf("unknown JSON number value: %s", jtv) + + } + sv.CreationDate = f64 + + default: + return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value) + + } + } + + case "Description": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CreateDate = ptr.String(jtv) + sv.Description = ptr.String(jtv) } - case "InstanceProfileId": + case "KeyId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.InstanceProfileId = ptr.String(jtv) + sv.KeyId = ptr.String(jtv) } - case "InstanceProfileName": + case "KeyManager": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.InstanceProfileName = ptr.String(jtv) + sv.KeyManager = ptr.String(jtv) + } + + case "KeyRotationStatus": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.KeyRotationStatus = jtv + } + + case "KeyState": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.KeyState = ptr.String(jtv) } - case "Path": + case "Origin": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Path = ptr.String(jtv) - } - - case "Roles": - if err := awsRestjson1_deserializeDocumentAwsIamInstanceProfileRoles(&sv.Roles, value); err != nil { - return err + sv.Origin = ptr.String(jtv) } default: @@ -22132,41 +24248,7 @@ func awsRestjson1_deserializeDocumentAwsIamInstanceProfile(v **types.AwsIamInsta return nil } -func awsRestjson1_deserializeDocumentAwsIamInstanceProfileList(v *[]types.AwsIamInstanceProfile, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.AwsIamInstanceProfile - if *v == nil { - cv = []types.AwsIamInstanceProfile{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsIamInstanceProfile - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsIamInstanceProfile(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentAwsIamInstanceProfileRole(v **types.AwsIamInstanceProfileRole, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsLambdaFunctionCode(v **types.AwsLambdaFunctionCode, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22179,67 +24261,49 @@ func awsRestjson1_deserializeDocumentAwsIamInstanceProfileRole(v **types.AwsIamI return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamInstanceProfileRole + var sv *types.AwsLambdaFunctionCode if *v == nil { - sv = &types.AwsIamInstanceProfileRole{} + sv = &types.AwsLambdaFunctionCode{} } else { sv = *v } for key, value := range shape { switch key { - case "Arn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Arn = ptr.String(jtv) - } - - case "AssumeRolePolicyDocument": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AwsIamRoleAssumeRolePolicyDocument to be of type string, got %T instead", value) - } - sv.AssumeRolePolicyDocument = ptr.String(jtv) - } - - case "CreateDate": + case "S3Bucket": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CreateDate = ptr.String(jtv) + sv.S3Bucket = ptr.String(jtv) } - case "Path": + case "S3Key": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Path = ptr.String(jtv) + sv.S3Key = ptr.String(jtv) } - case "RoleId": + case "S3ObjectVersion": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.RoleId = ptr.String(jtv) + sv.S3ObjectVersion = ptr.String(jtv) } - case "RoleName": + case "ZipFile": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.RoleName = ptr.String(jtv) + sv.ZipFile = ptr.String(jtv) } default: @@ -22251,41 +24315,7 @@ func awsRestjson1_deserializeDocumentAwsIamInstanceProfileRole(v **types.AwsIamI return nil } -func awsRestjson1_deserializeDocumentAwsIamInstanceProfileRoles(v *[]types.AwsIamInstanceProfileRole, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.AwsIamInstanceProfileRole - if *v == nil { - cv = []types.AwsIamInstanceProfileRole{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsIamInstanceProfileRole - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsIamInstanceProfileRole(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentAwsIamPermissionsBoundary(v **types.AwsIamPermissionsBoundary, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsLambdaFunctionDeadLetterConfig(v **types.AwsLambdaFunctionDeadLetterConfig, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22298,31 +24328,22 @@ func awsRestjson1_deserializeDocumentAwsIamPermissionsBoundary(v **types.AwsIamP return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamPermissionsBoundary + var sv *types.AwsLambdaFunctionDeadLetterConfig if *v == nil { - sv = &types.AwsIamPermissionsBoundary{} + sv = &types.AwsLambdaFunctionDeadLetterConfig{} } else { sv = *v } for key, value := range shape { switch key { - case "PermissionsBoundaryArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.PermissionsBoundaryArn = ptr.String(jtv) - } - - case "PermissionsBoundaryType": + case "TargetArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PermissionsBoundaryType = ptr.String(jtv) + sv.TargetArn = ptr.String(jtv) } default: @@ -22334,7 +24355,7 @@ func awsRestjson1_deserializeDocumentAwsIamPermissionsBoundary(v **types.AwsIamP return nil } -func awsRestjson1_deserializeDocumentAwsIamPolicyDetails(v **types.AwsIamPolicyDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsLambdaFunctionDetails(v **types.AwsLambdaFunctionDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22347,74 +24368,90 @@ func awsRestjson1_deserializeDocumentAwsIamPolicyDetails(v **types.AwsIamPolicyD return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamPolicyDetails + var sv *types.AwsLambdaFunctionDetails if *v == nil { - sv = &types.AwsIamPolicyDetails{} + sv = &types.AwsLambdaFunctionDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "AttachmentCount": + case "Code": + if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionCode(&sv.Code, value); err != nil { + return err + } + + case "CodeSha256": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.AttachmentCount = int32(i64) + sv.CodeSha256 = ptr.String(jtv) } - case "CreateDate": + case "DeadLetterConfig": + if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionDeadLetterConfig(&sv.DeadLetterConfig, value); err != nil { + return err + } + + case "Environment": + if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionEnvironment(&sv.Environment, value); err != nil { + return err + } + + case "FunctionName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CreateDate = ptr.String(jtv) + sv.FunctionName = ptr.String(jtv) } - case "DefaultVersionId": + case "Handler": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.DefaultVersionId = ptr.String(jtv) + sv.Handler = ptr.String(jtv) } - case "Description": + case "KmsKeyArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Description = ptr.String(jtv) + sv.KmsKeyArn = ptr.String(jtv) } - case "IsAttachable": + case "LastModified": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.IsAttachable = jtv + sv.LastModified = ptr.String(jtv) } - case "Path": + case "Layers": + if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionLayerList(&sv.Layers, value); err != nil { + return err + } + + case "MasterArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Path = ptr.String(jtv) + sv.MasterArn = ptr.String(jtv) } - case "PermissionsBoundaryUsageCount": + case "MemorySize": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -22424,97 +24461,66 @@ func awsRestjson1_deserializeDocumentAwsIamPolicyDetails(v **types.AwsIamPolicyD if err != nil { return err } - sv.PermissionsBoundaryUsageCount = int32(i64) - } - - case "PolicyId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.PolicyId = ptr.String(jtv) + sv.MemorySize = int32(i64) } - case "PolicyName": + case "RevisionId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PolicyName = ptr.String(jtv) - } - - case "PolicyVersionList": - if err := awsRestjson1_deserializeDocumentAwsIamPolicyVersionList(&sv.PolicyVersionList, value); err != nil { - return err + sv.RevisionId = ptr.String(jtv) } - case "UpdateDate": + case "Role": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.UpdateDate = ptr.String(jtv) - } - - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsIamPolicyVersion(v **types.AwsIamPolicyVersion, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsIamPolicyVersion - if *v == nil { - sv = &types.AwsIamPolicyVersion{} - } else { - sv = *v - } + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Role = ptr.String(jtv) + } - for key, value := range shape { - switch key { - case "CreateDate": + case "Runtime": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CreateDate = ptr.String(jtv) + sv.Runtime = ptr.String(jtv) } - case "IsDefaultVersion": + case "Timeout": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.IsDefaultVersion = jtv + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Timeout = int32(i64) } - case "VersionId": + case "TracingConfig": + if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionTracingConfig(&sv.TracingConfig, value); err != nil { + return err + } + + case "Version": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.VersionId = ptr.String(jtv) + sv.Version = ptr.String(jtv) + } + + case "VpcConfig": + if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionVpcConfig(&sv.VpcConfig, value); err != nil { + return err } default: @@ -22526,7 +24532,7 @@ func awsRestjson1_deserializeDocumentAwsIamPolicyVersion(v **types.AwsIamPolicyV return nil } -func awsRestjson1_deserializeDocumentAwsIamPolicyVersionList(v *[]types.AwsIamPolicyVersion, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsLambdaFunctionEnvironment(v **types.AwsLambdaFunctionEnvironment, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22534,33 +24540,40 @@ func awsRestjson1_deserializeDocumentAwsIamPolicyVersionList(v *[]types.AwsIamPo return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsIamPolicyVersion + var sv *types.AwsLambdaFunctionEnvironment if *v == nil { - cv = []types.AwsIamPolicyVersion{} + sv = &types.AwsLambdaFunctionEnvironment{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col types.AwsIamPolicyVersion - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsIamPolicyVersion(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + for key, value := range shape { + switch key { + case "Error": + if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionEnvironmentError(&sv.Error, value); err != nil { + return err + } + + case "Variables": + if err := awsRestjson1_deserializeDocumentFieldMap(&sv.Variables, value); err != nil { + return err + } + + default: + _, _ = key, value + } } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentAwsIamRoleDetails(v **types.AwsIamRoleDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsLambdaFunctionEnvironmentError(v **types.AwsLambdaFunctionEnvironmentError, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22573,91 +24586,31 @@ func awsRestjson1_deserializeDocumentAwsIamRoleDetails(v **types.AwsIamRoleDetai return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamRoleDetails + var sv *types.AwsLambdaFunctionEnvironmentError if *v == nil { - sv = &types.AwsIamRoleDetails{} + sv = &types.AwsLambdaFunctionEnvironmentError{} } else { sv = *v } for key, value := range shape { switch key { - case "AssumeRolePolicyDocument": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AwsIamRoleAssumeRolePolicyDocument to be of type string, got %T instead", value) - } - sv.AssumeRolePolicyDocument = ptr.String(jtv) - } - - case "AttachedManagedPolicies": - if err := awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicyList(&sv.AttachedManagedPolicies, value); err != nil { - return err - } - - case "CreateDate": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.CreateDate = ptr.String(jtv) - } - - case "InstanceProfileList": - if err := awsRestjson1_deserializeDocumentAwsIamInstanceProfileList(&sv.InstanceProfileList, value); err != nil { - return err - } - - case "MaxSessionDuration": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.MaxSessionDuration = int32(i64) - } - - case "Path": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Path = ptr.String(jtv) - } - - case "PermissionsBoundary": - if err := awsRestjson1_deserializeDocumentAwsIamPermissionsBoundary(&sv.PermissionsBoundary, value); err != nil { - return err - } - - case "RoleId": + case "ErrorCode": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.RoleId = ptr.String(jtv) + sv.ErrorCode = ptr.String(jtv) } - case "RoleName": + case "Message": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.RoleName = ptr.String(jtv) - } - - case "RolePolicyList": - if err := awsRestjson1_deserializeDocumentAwsIamRolePolicyList(&sv.RolePolicyList, value); err != nil { - return err + sv.Message = ptr.String(jtv) } default: @@ -22669,7 +24622,7 @@ func awsRestjson1_deserializeDocumentAwsIamRoleDetails(v **types.AwsIamRoleDetai return nil } -func awsRestjson1_deserializeDocumentAwsIamRolePolicy(v **types.AwsIamRolePolicy, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsLambdaFunctionLayer(v **types.AwsLambdaFunctionLayer, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22682,22 +24635,35 @@ func awsRestjson1_deserializeDocumentAwsIamRolePolicy(v **types.AwsIamRolePolicy return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamRolePolicy + var sv *types.AwsLambdaFunctionLayer if *v == nil { - sv = &types.AwsIamRolePolicy{} + sv = &types.AwsLambdaFunctionLayer{} } else { sv = *v } for key, value := range shape { switch key { - case "PolicyName": + case "Arn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PolicyName = ptr.String(jtv) + sv.Arn = ptr.String(jtv) + } + + case "CodeSize": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.CodeSize = int32(i64) } default: @@ -22709,7 +24675,7 @@ func awsRestjson1_deserializeDocumentAwsIamRolePolicy(v **types.AwsIamRolePolicy return nil } -func awsRestjson1_deserializeDocumentAwsIamRolePolicyList(v *[]types.AwsIamRolePolicy, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsLambdaFunctionLayerList(v *[]types.AwsLambdaFunctionLayer, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22722,17 +24688,17 @@ func awsRestjson1_deserializeDocumentAwsIamRolePolicyList(v *[]types.AwsIamRoleP return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsIamRolePolicy + var cv []types.AwsLambdaFunctionLayer if *v == nil { - cv = []types.AwsIamRolePolicy{} + cv = []types.AwsLambdaFunctionLayer{} } else { cv = *v } for _, value := range shape { - var col types.AwsIamRolePolicy + var col types.AwsLambdaFunctionLayer destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsIamRolePolicy(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionLayer(&destAddr, value); err != nil { return err } col = *destAddr @@ -22743,7 +24709,7 @@ func awsRestjson1_deserializeDocumentAwsIamRolePolicyList(v *[]types.AwsIamRoleP return nil } -func awsRestjson1_deserializeDocumentAwsIamUserDetails(v **types.AwsIamUserDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsLambdaFunctionTracingConfig(v **types.AwsLambdaFunctionTracingConfig, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22756,69 +24722,72 @@ func awsRestjson1_deserializeDocumentAwsIamUserDetails(v **types.AwsIamUserDetai return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamUserDetails + var sv *types.AwsLambdaFunctionTracingConfig if *v == nil { - sv = &types.AwsIamUserDetails{} + sv = &types.AwsLambdaFunctionTracingConfig{} } else { sv = *v } for key, value := range shape { switch key { - case "AttachedManagedPolicies": - if err := awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicyList(&sv.AttachedManagedPolicies, value); err != nil { - return err - } - - case "CreateDate": + case "Mode": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.CreateDate = ptr.String(jtv) + sv.Mode = ptr.String(jtv) } - case "GroupList": - if err := awsRestjson1_deserializeDocumentStringList(&sv.GroupList, value); err != nil { - return err - } + default: + _, _ = key, value - case "Path": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Path = ptr.String(jtv) - } + } + } + *v = sv + return nil +} - case "PermissionsBoundary": - if err := awsRestjson1_deserializeDocumentAwsIamPermissionsBoundary(&sv.PermissionsBoundary, value); err != nil { +func awsRestjson1_deserializeDocumentAwsLambdaFunctionVpcConfig(v **types.AwsLambdaFunctionVpcConfig, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsLambdaFunctionVpcConfig + if *v == nil { + sv = &types.AwsLambdaFunctionVpcConfig{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "SecurityGroupIds": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SecurityGroupIds, value); err != nil { return err } - case "UserId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.UserId = ptr.String(jtv) + case "SubnetIds": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SubnetIds, value); err != nil { + return err } - case "UserName": + case "VpcId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.UserName = ptr.String(jtv) - } - - case "UserPolicyList": - if err := awsRestjson1_deserializeDocumentAwsIamUserPolicyList(&sv.UserPolicyList, value); err != nil { - return err + sv.VpcId = ptr.String(jtv) } default: @@ -22830,7 +24799,7 @@ func awsRestjson1_deserializeDocumentAwsIamUserDetails(v **types.AwsIamUserDetai return nil } -func awsRestjson1_deserializeDocumentAwsIamUserPolicy(v **types.AwsIamUserPolicy, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsLambdaLayerVersionDetails(v **types.AwsLambdaLayerVersionDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22843,22 +24812,40 @@ func awsRestjson1_deserializeDocumentAwsIamUserPolicy(v **types.AwsIamUserPolicy return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsIamUserPolicy + var sv *types.AwsLambdaLayerVersionDetails if *v == nil { - sv = &types.AwsIamUserPolicy{} + sv = &types.AwsLambdaLayerVersionDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "PolicyName": + case "CompatibleRuntimes": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.CompatibleRuntimes, value); err != nil { + return err + } + + case "CreatedDate": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PolicyName = ptr.String(jtv) + sv.CreatedDate = ptr.String(jtv) + } + + case "Version": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected AwsLambdaLayerVersionNumber to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Version = i64 } default: @@ -22870,41 +24857,7 @@ func awsRestjson1_deserializeDocumentAwsIamUserPolicy(v **types.AwsIamUserPolicy return nil } -func awsRestjson1_deserializeDocumentAwsIamUserPolicyList(v *[]types.AwsIamUserPolicy, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var cv []types.AwsIamUserPolicy - if *v == nil { - cv = []types.AwsIamUserPolicy{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.AwsIamUserPolicy - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsIamUserPolicy(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentAwsKmsKeyDetails(v **types.AwsKmsKeyDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainClusterConfigDetails(v **types.AwsOpenSearchServiceDomainClusterConfigDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22917,177 +24870,111 @@ func awsRestjson1_deserializeDocumentAwsKmsKeyDetails(v **types.AwsKmsKeyDetails return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsKmsKeyDetails + var sv *types.AwsOpenSearchServiceDomainClusterConfigDetails if *v == nil { - sv = &types.AwsKmsKeyDetails{} + sv = &types.AwsOpenSearchServiceDomainClusterConfigDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "AWSAccountId": + case "DedicatedMasterCount": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.AWSAccountId = ptr.String(jtv) - } - - case "CreationDate": - if value != nil { - switch jtv := value.(type) { - case json.Number: - f64, err := jtv.Float64() - if err != nil { - return err - } - sv.CreationDate = f64 - - case string: - var f64 float64 - switch { - case strings.EqualFold(jtv, "NaN"): - f64 = math.NaN() - - case strings.EqualFold(jtv, "Infinity"): - f64 = math.Inf(1) - - case strings.EqualFold(jtv, "-Infinity"): - f64 = math.Inf(-1) - - default: - return fmt.Errorf("unknown JSON number value: %s", jtv) - - } - sv.CreationDate = f64 - - default: - return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value) - + i64, err := jtv.Int64() + if err != nil { + return err } + sv.DedicatedMasterCount = int32(i64) } - case "Description": + case "DedicatedMasterEnabled": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.Description = ptr.String(jtv) + sv.DedicatedMasterEnabled = jtv } - case "KeyId": + case "DedicatedMasterType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.KeyId = ptr.String(jtv) + sv.DedicatedMasterType = ptr.String(jtv) } - case "KeyManager": + case "InstanceCount": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.KeyManager = ptr.String(jtv) - } - - case "KeyRotationStatus": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + i64, err := jtv.Int64() + if err != nil { + return err } - sv.KeyRotationStatus = jtv + sv.InstanceCount = int32(i64) } - case "KeyState": + case "InstanceType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.KeyState = ptr.String(jtv) + sv.InstanceType = ptr.String(jtv) } - case "Origin": + case "WarmCount": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.Origin = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.WarmCount = int32(i64) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsRestjson1_deserializeDocumentAwsLambdaFunctionCode(v **types.AwsLambdaFunctionCode, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } - - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsLambdaFunctionCode - if *v == nil { - sv = &types.AwsLambdaFunctionCode{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "S3Bucket": + case "WarmEnabled": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.S3Bucket = ptr.String(jtv) + sv.WarmEnabled = jtv } - case "S3Key": + case "WarmType": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.S3Key = ptr.String(jtv) + sv.WarmType = ptr.String(jtv) } - case "S3ObjectVersion": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.S3ObjectVersion = ptr.String(jtv) + case "ZoneAwarenessConfig": + if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails(&sv.ZoneAwarenessConfig, value); err != nil { + return err } - case "ZipFile": + case "ZoneAwarenessEnabled": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.ZipFile = ptr.String(jtv) + sv.ZoneAwarenessEnabled = jtv } default: @@ -23099,7 +24986,7 @@ func awsRestjson1_deserializeDocumentAwsLambdaFunctionCode(v **types.AwsLambdaFu return nil } -func awsRestjson1_deserializeDocumentAwsLambdaFunctionDeadLetterConfig(v **types.AwsLambdaFunctionDeadLetterConfig, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails(v **types.AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -23112,22 +24999,26 @@ func awsRestjson1_deserializeDocumentAwsLambdaFunctionDeadLetterConfig(v **types return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsLambdaFunctionDeadLetterConfig + var sv *types.AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails if *v == nil { - sv = &types.AwsLambdaFunctionDeadLetterConfig{} + sv = &types.AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "TargetArn": + case "AvailabilityZoneCount": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) } - sv.TargetArn = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.AvailabilityZoneCount = int32(i64) } default: @@ -23139,7 +25030,7 @@ func awsRestjson1_deserializeDocumentAwsLambdaFunctionDeadLetterConfig(v **types return nil } -func awsRestjson1_deserializeDocumentAwsLambdaFunctionDetails(v **types.AwsLambdaFunctionDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainDetails(v **types.AwsOpenSearchServiceDomainDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -23150,160 +25041,108 @@ func awsRestjson1_deserializeDocumentAwsLambdaFunctionDetails(v **types.AwsLambd shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) - } - - var sv *types.AwsLambdaFunctionDetails - if *v == nil { - sv = &types.AwsLambdaFunctionDetails{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "Code": - if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionCode(&sv.Code, value); err != nil { - return err - } - - case "CodeSha256": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.CodeSha256 = ptr.String(jtv) - } - - case "DeadLetterConfig": - if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionDeadLetterConfig(&sv.DeadLetterConfig, value); err != nil { - return err - } + } - case "Environment": - if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionEnvironment(&sv.Environment, value); err != nil { - return err - } + var sv *types.AwsOpenSearchServiceDomainDetails + if *v == nil { + sv = &types.AwsOpenSearchServiceDomainDetails{} + } else { + sv = *v + } - case "FunctionName": + for key, value := range shape { + switch key { + case "AccessPolicies": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.FunctionName = ptr.String(jtv) + sv.AccessPolicies = ptr.String(jtv) } - case "Handler": + case "Arn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Handler = ptr.String(jtv) + sv.Arn = ptr.String(jtv) } - case "KmsKeyArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.KmsKeyArn = ptr.String(jtv) + case "ClusterConfig": + if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainClusterConfigDetails(&sv.ClusterConfig, value); err != nil { + return err } - case "LastModified": + case "DomainEndpoint": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.LastModified = ptr.String(jtv) + sv.DomainEndpoint = ptr.String(jtv) } - case "Layers": - if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionLayerList(&sv.Layers, value); err != nil { + case "DomainEndpointOptions": + if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainDomainEndpointOptionsDetails(&sv.DomainEndpointOptions, value); err != nil { return err } - case "MasterArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.MasterArn = ptr.String(jtv) - } - - case "MemorySize": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.MemorySize = int32(i64) + case "DomainEndpoints": + if err := awsRestjson1_deserializeDocumentFieldMap(&sv.DomainEndpoints, value); err != nil { + return err } - case "RevisionId": + case "DomainName": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.RevisionId = ptr.String(jtv) + sv.DomainName = ptr.String(jtv) } - case "Role": + case "EncryptionAtRestOptions": + if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails(&sv.EncryptionAtRestOptions, value); err != nil { + return err + } + + case "EngineVersion": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Role = ptr.String(jtv) + sv.EngineVersion = ptr.String(jtv) } - case "Runtime": + case "Id": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Runtime = ptr.String(jtv) + sv.Id = ptr.String(jtv) } - case "Timeout": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.Timeout = int32(i64) + case "LogPublishingOptions": + if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainLogPublishingOptionsDetails(&sv.LogPublishingOptions, value); err != nil { + return err } - case "TracingConfig": - if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionTracingConfig(&sv.TracingConfig, value); err != nil { + case "NodeToNodeEncryptionOptions": + if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails(&sv.NodeToNodeEncryptionOptions, value); err != nil { return err } - case "Version": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Version = ptr.String(jtv) + case "ServiceSoftwareOptions": + if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainServiceSoftwareOptionsDetails(&sv.ServiceSoftwareOptions, value); err != nil { + return err } - case "VpcConfig": - if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionVpcConfig(&sv.VpcConfig, value); err != nil { + case "VpcOptions": + if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainVpcOptionsDetails(&sv.VpcOptions, value); err != nil { return err } @@ -23316,7 +25155,7 @@ func awsRestjson1_deserializeDocumentAwsLambdaFunctionDetails(v **types.AwsLambd return nil } -func awsRestjson1_deserializeDocumentAwsLambdaFunctionEnvironment(v **types.AwsLambdaFunctionEnvironment, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainDomainEndpointOptionsDetails(v **types.AwsOpenSearchServiceDomainDomainEndpointOptionsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -23329,23 +25168,58 @@ func awsRestjson1_deserializeDocumentAwsLambdaFunctionEnvironment(v **types.AwsL return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsLambdaFunctionEnvironment + var sv *types.AwsOpenSearchServiceDomainDomainEndpointOptionsDetails if *v == nil { - sv = &types.AwsLambdaFunctionEnvironment{} + sv = &types.AwsOpenSearchServiceDomainDomainEndpointOptionsDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Error": - if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionEnvironmentError(&sv.Error, value); err != nil { - return err + case "CustomEndpoint": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CustomEndpoint = ptr.String(jtv) } - case "Variables": - if err := awsRestjson1_deserializeDocumentFieldMap(&sv.Variables, value); err != nil { - return err + case "CustomEndpointCertificateArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CustomEndpointCertificateArn = ptr.String(jtv) + } + + case "CustomEndpointEnabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.CustomEndpointEnabled = jtv + } + + case "EnforceHTTPS": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.EnforceHTTPS = jtv + } + + case "TLSSecurityPolicy": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.TLSSecurityPolicy = ptr.String(jtv) } default: @@ -23357,7 +25231,7 @@ func awsRestjson1_deserializeDocumentAwsLambdaFunctionEnvironment(v **types.AwsL return nil } -func awsRestjson1_deserializeDocumentAwsLambdaFunctionEnvironmentError(v **types.AwsLambdaFunctionEnvironmentError, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails(v **types.AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -23370,31 +25244,31 @@ func awsRestjson1_deserializeDocumentAwsLambdaFunctionEnvironmentError(v **types return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsLambdaFunctionEnvironmentError + var sv *types.AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails if *v == nil { - sv = &types.AwsLambdaFunctionEnvironmentError{} + sv = &types.AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "ErrorCode": + case "Enabled": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.ErrorCode = ptr.String(jtv) + sv.Enabled = jtv } - case "Message": + case "KmsKeyId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.KmsKeyId = ptr.String(jtv) } default: @@ -23406,7 +25280,7 @@ func awsRestjson1_deserializeDocumentAwsLambdaFunctionEnvironmentError(v **types return nil } -func awsRestjson1_deserializeDocumentAwsLambdaFunctionLayer(v **types.AwsLambdaFunctionLayer, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainLogPublishingOption(v **types.AwsOpenSearchServiceDomainLogPublishingOption, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -23419,35 +25293,31 @@ func awsRestjson1_deserializeDocumentAwsLambdaFunctionLayer(v **types.AwsLambdaF return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsLambdaFunctionLayer + var sv *types.AwsOpenSearchServiceDomainLogPublishingOption if *v == nil { - sv = &types.AwsLambdaFunctionLayer{} + sv = &types.AwsOpenSearchServiceDomainLogPublishingOption{} } else { sv = *v } for key, value := range shape { switch key { - case "Arn": + case "CloudWatchLogsLogGroupArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Arn = ptr.String(jtv) + sv.CloudWatchLogsLogGroupArn = ptr.String(jtv) } - case "CodeSize": + case "Enabled": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.CodeSize = int32(i64) + sv.Enabled = jtv } default: @@ -23459,7 +25329,7 @@ func awsRestjson1_deserializeDocumentAwsLambdaFunctionLayer(v **types.AwsLambdaF return nil } -func awsRestjson1_deserializeDocumentAwsLambdaFunctionLayerList(v *[]types.AwsLambdaFunctionLayer, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainLogPublishingOptionsDetails(v **types.AwsOpenSearchServiceDomainLogPublishingOptionsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -23467,33 +25337,45 @@ func awsRestjson1_deserializeDocumentAwsLambdaFunctionLayerList(v *[]types.AwsLa return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.AwsLambdaFunctionLayer + var sv *types.AwsOpenSearchServiceDomainLogPublishingOptionsDetails if *v == nil { - cv = []types.AwsLambdaFunctionLayer{} + sv = &types.AwsOpenSearchServiceDomainLogPublishingOptionsDetails{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col types.AwsLambdaFunctionLayer - destAddr := &col - if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionLayer(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + for key, value := range shape { + switch key { + case "AuditLogs": + if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainLogPublishingOption(&sv.AuditLogs, value); err != nil { + return err + } + + case "IndexSlowLogs": + if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainLogPublishingOption(&sv.IndexSlowLogs, value); err != nil { + return err + } + + case "SearchSlowLogs": + if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainLogPublishingOption(&sv.SearchSlowLogs, value); err != nil { + return err + } + + default: + _, _ = key, value + } } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentAwsLambdaFunctionTracingConfig(v **types.AwsLambdaFunctionTracingConfig, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails(v **types.AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -23506,22 +25388,22 @@ func awsRestjson1_deserializeDocumentAwsLambdaFunctionTracingConfig(v **types.Aw return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsLambdaFunctionTracingConfig + var sv *types.AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails if *v == nil { - sv = &types.AwsLambdaFunctionTracingConfig{} + sv = &types.AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "Mode": + case "Enabled": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.Mode = ptr.String(jtv) + sv.Enabled = jtv } default: @@ -23533,7 +25415,7 @@ func awsRestjson1_deserializeDocumentAwsLambdaFunctionTracingConfig(v **types.Aw return nil } -func awsRestjson1_deserializeDocumentAwsLambdaFunctionVpcConfig(v **types.AwsLambdaFunctionVpcConfig, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainServiceSoftwareOptionsDetails(v **types.AwsOpenSearchServiceDomainServiceSoftwareOptionsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -23546,32 +25428,85 @@ func awsRestjson1_deserializeDocumentAwsLambdaFunctionVpcConfig(v **types.AwsLam return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsLambdaFunctionVpcConfig - if *v == nil { - sv = &types.AwsLambdaFunctionVpcConfig{} - } else { - sv = *v - } + var sv *types.AwsOpenSearchServiceDomainServiceSoftwareOptionsDetails + if *v == nil { + sv = &types.AwsOpenSearchServiceDomainServiceSoftwareOptionsDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AutomatedUpdateDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.AutomatedUpdateDate = ptr.String(jtv) + } + + case "Cancellable": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Cancellable = jtv + } + + case "CurrentVersion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.CurrentVersion = ptr.String(jtv) + } + + case "Description": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Description = ptr.String(jtv) + } + + case "NewVersion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.NewVersion = ptr.String(jtv) + } - for key, value := range shape { - switch key { - case "SecurityGroupIds": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SecurityGroupIds, value); err != nil { - return err + case "OptionalDeployment": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.OptionalDeployment = jtv } - case "SubnetIds": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SubnetIds, value); err != nil { - return err + case "UpdateAvailable": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.UpdateAvailable = jtv } - case "VpcId": + case "UpdateStatus": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.VpcId = ptr.String(jtv) + sv.UpdateStatus = ptr.String(jtv) } default: @@ -23583,7 +25518,7 @@ func awsRestjson1_deserializeDocumentAwsLambdaFunctionVpcConfig(v **types.AwsLam return nil } -func awsRestjson1_deserializeDocumentAwsLambdaLayerVersionDetails(v **types.AwsLambdaLayerVersionDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainVpcOptionsDetails(v **types.AwsOpenSearchServiceDomainVpcOptionsDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -23596,40 +25531,23 @@ func awsRestjson1_deserializeDocumentAwsLambdaLayerVersionDetails(v **types.AwsL return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsLambdaLayerVersionDetails + var sv *types.AwsOpenSearchServiceDomainVpcOptionsDetails if *v == nil { - sv = &types.AwsLambdaLayerVersionDetails{} + sv = &types.AwsOpenSearchServiceDomainVpcOptionsDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "CompatibleRuntimes": - if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.CompatibleRuntimes, value); err != nil { + case "SecurityGroupIds": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SecurityGroupIds, value); err != nil { return err } - case "CreatedDate": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.CreatedDate = ptr.String(jtv) - } - - case "Version": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected AwsLambdaLayerVersionNumber to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.Version = i64 + case "SubnetIds": + if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SubnetIds, value); err != nil { + return err } default: @@ -28842,6 +30760,15 @@ func awsRestjson1_deserializeDocumentAwsS3BucketDetails(v **types.AwsS3BucketDet sv.CreatedAt = ptr.String(jtv) } + case "OwnerAccountId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.OwnerAccountId = ptr.String(jtv) + } + case "OwnerId": if value != nil { jtv, ok := value.(string) @@ -31275,49 +33202,264 @@ func awsRestjson1_deserializeDocumentAwsSsmComplianceSummary(v **types.AwsSsmCom if value != nil { jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + return fmt.Errorf("expected Integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.NonCompliantUnspecifiedCount = int32(i64) + } + + case "OverallSeverity": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.OverallSeverity = ptr.String(jtv) + } + + case "PatchBaselineId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.PatchBaselineId = ptr.String(jtv) + } + + case "PatchGroup": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.PatchGroup = ptr.String(jtv) + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Status = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsSsmPatch(v **types.AwsSsmPatch, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsSsmPatch + if *v == nil { + sv = &types.AwsSsmPatch{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ComplianceSummary": + if err := awsRestjson1_deserializeDocumentAwsSsmComplianceSummary(&sv.ComplianceSummary, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsSsmPatchComplianceDetails(v **types.AwsSsmPatchComplianceDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsSsmPatchComplianceDetails + if *v == nil { + sv = &types.AwsSsmPatchComplianceDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Patch": + if err := awsRestjson1_deserializeDocumentAwsSsmPatch(&sv.Patch, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsWafRateBasedRuleDetails(v **types.AwsWafRateBasedRuleDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsWafRateBasedRuleDetails + if *v == nil { + sv = &types.AwsWafRateBasedRuleDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "MatchPredicates": + if err := awsRestjson1_deserializeDocumentAwsWafRateBasedRuleMatchPredicateList(&sv.MatchPredicates, value); err != nil { + return err + } + + case "MetricName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.MetricName = ptr.String(jtv) + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "RateKey": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.RateKey = ptr.String(jtv) + } + + case "RateLimit": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Long to be json.Number, got %T instead", value) } i64, err := jtv.Int64() if err != nil { return err } - sv.NonCompliantUnspecifiedCount = int32(i64) + sv.RateLimit = i64 } - case "OverallSeverity": + case "RuleId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.OverallSeverity = ptr.String(jtv) + sv.RuleId = ptr.String(jtv) } - case "PatchBaselineId": + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAwsWafRateBasedRuleMatchPredicate(v **types.AwsWafRateBasedRuleMatchPredicate, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsWafRateBasedRuleMatchPredicate + if *v == nil { + sv = &types.AwsWafRateBasedRuleMatchPredicate{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DataId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.PatchBaselineId = ptr.String(jtv) + sv.DataId = ptr.String(jtv) } - case "PatchGroup": + case "Negated": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.PatchGroup = ptr.String(jtv) + sv.Negated = jtv } - case "Status": + case "Type": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Status = ptr.String(jtv) + sv.Type = ptr.String(jtv) } default: @@ -31329,7 +33471,41 @@ func awsRestjson1_deserializeDocumentAwsSsmComplianceSummary(v **types.AwsSsmCom return nil } -func awsRestjson1_deserializeDocumentAwsSsmPatch(v **types.AwsSsmPatch, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsWafRateBasedRuleMatchPredicateList(v *[]types.AwsWafRateBasedRuleMatchPredicate, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsWafRateBasedRuleMatchPredicate + if *v == nil { + cv = []types.AwsWafRateBasedRuleMatchPredicate{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsWafRateBasedRuleMatchPredicate + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsWafRateBasedRuleMatchPredicate(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAwsWafRegionalRateBasedRuleDetails(v **types.AwsWafRegionalRateBasedRuleDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -31342,20 +33518,69 @@ func awsRestjson1_deserializeDocumentAwsSsmPatch(v **types.AwsSsmPatch, value in return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsSsmPatch + var sv *types.AwsWafRegionalRateBasedRuleDetails if *v == nil { - sv = &types.AwsSsmPatch{} + sv = &types.AwsWafRegionalRateBasedRuleDetails{} } else { sv = *v } for key, value := range shape { switch key { - case "ComplianceSummary": - if err := awsRestjson1_deserializeDocumentAwsSsmComplianceSummary(&sv.ComplianceSummary, value); err != nil { + case "MatchPredicates": + if err := awsRestjson1_deserializeDocumentAwsWafRegionalRateBasedRuleMatchPredicateList(&sv.MatchPredicates, value); err != nil { return err } + case "MetricName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.MetricName = ptr.String(jtv) + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "RateKey": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.RateKey = ptr.String(jtv) + } + + case "RateLimit": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Long to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.RateLimit = i64 + } + + case "RuleId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.RuleId = ptr.String(jtv) + } + default: _, _ = key, value @@ -31365,7 +33590,7 @@ func awsRestjson1_deserializeDocumentAwsSsmPatch(v **types.AwsSsmPatch, value in return nil } -func awsRestjson1_deserializeDocumentAwsSsmPatchComplianceDetails(v **types.AwsSsmPatchComplianceDetails, value interface{}) error { +func awsRestjson1_deserializeDocumentAwsWafRegionalRateBasedRuleMatchPredicate(v **types.AwsWafRegionalRateBasedRuleMatchPredicate, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -31378,18 +33603,40 @@ func awsRestjson1_deserializeDocumentAwsSsmPatchComplianceDetails(v **types.AwsS return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AwsSsmPatchComplianceDetails + var sv *types.AwsWafRegionalRateBasedRuleMatchPredicate if *v == nil { - sv = &types.AwsSsmPatchComplianceDetails{} + sv = &types.AwsWafRegionalRateBasedRuleMatchPredicate{} } else { sv = *v } for key, value := range shape { switch key { - case "Patch": - if err := awsRestjson1_deserializeDocumentAwsSsmPatch(&sv.Patch, value); err != nil { - return err + case "DataId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.DataId = ptr.String(jtv) + } + + case "Negated": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Negated = jtv + } + + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Type = ptr.String(jtv) } default: @@ -31401,6 +33648,40 @@ func awsRestjson1_deserializeDocumentAwsSsmPatchComplianceDetails(v **types.AwsS return nil } +func awsRestjson1_deserializeDocumentAwsWafRegionalRateBasedRuleMatchPredicateList(v *[]types.AwsWafRegionalRateBasedRuleMatchPredicate, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AwsWafRegionalRateBasedRuleMatchPredicate + if *v == nil { + cv = []types.AwsWafRegionalRateBasedRuleMatchPredicate{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsWafRegionalRateBasedRuleMatchPredicate + destAddr := &col + if err := awsRestjson1_deserializeDocumentAwsWafRegionalRateBasedRuleMatchPredicate(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentAwsWafWebAclDetails(v **types.AwsWafWebAclDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -31575,6 +33856,64 @@ func awsRestjson1_deserializeDocumentAwsWafWebAclRuleList(v *[]types.AwsWafWebAc return nil } +func awsRestjson1_deserializeDocumentAwsXrayEncryptionConfigDetails(v **types.AwsXrayEncryptionConfigDetails, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AwsXrayEncryptionConfigDetails + if *v == nil { + sv = &types.AwsXrayEncryptionConfigDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "KeyId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.KeyId = ptr.String(jtv) + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Status = ptr.String(jtv) + } + + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Type = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentBatchUpdateFindingsUnprocessedFinding(v **types.BatchUpdateFindingsUnprocessedFinding, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -36617,6 +38956,11 @@ func awsRestjson1_deserializeDocumentResourceDetails(v **types.ResourceDetails, return err } + case "AwsEc2VpcEndpointService": + if err := awsRestjson1_deserializeDocumentAwsEc2VpcEndpointServiceDetails(&sv.AwsEc2VpcEndpointService, value); err != nil { + return err + } + case "AwsEc2VpnConnection": if err := awsRestjson1_deserializeDocumentAwsEc2VpnConnectionDetails(&sv.AwsEc2VpnConnection, value); err != nil { return err @@ -36627,6 +38971,11 @@ func awsRestjson1_deserializeDocumentResourceDetails(v **types.ResourceDetails, return err } + case "AwsEcrRepository": + if err := awsRestjson1_deserializeDocumentAwsEcrRepositoryDetails(&sv.AwsEcrRepository, value); err != nil { + return err + } + case "AwsEcsCluster": if err := awsRestjson1_deserializeDocumentAwsEcsClusterDetails(&sv.AwsEcsCluster, value); err != nil { return err @@ -36642,6 +38991,11 @@ func awsRestjson1_deserializeDocumentResourceDetails(v **types.ResourceDetails, return err } + case "AwsEksCluster": + if err := awsRestjson1_deserializeDocumentAwsEksClusterDetails(&sv.AwsEksCluster, value); err != nil { + return err + } + case "AwsElasticBeanstalkEnvironment": if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentDetails(&sv.AwsElasticBeanstalkEnvironment, value); err != nil { return err @@ -36702,6 +39056,11 @@ func awsRestjson1_deserializeDocumentResourceDetails(v **types.ResourceDetails, return err } + case "AwsOpenSearchServiceDomain": + if err := awsRestjson1_deserializeDocumentAwsOpenSearchServiceDomainDetails(&sv.AwsOpenSearchServiceDomain, value); err != nil { + return err + } + case "AwsRdsDbCluster": if err := awsRestjson1_deserializeDocumentAwsRdsDbClusterDetails(&sv.AwsRdsDbCluster, value); err != nil { return err @@ -36767,11 +39126,26 @@ func awsRestjson1_deserializeDocumentResourceDetails(v **types.ResourceDetails, return err } + case "AwsWafRateBasedRule": + if err := awsRestjson1_deserializeDocumentAwsWafRateBasedRuleDetails(&sv.AwsWafRateBasedRule, value); err != nil { + return err + } + + case "AwsWafRegionalRateBasedRule": + if err := awsRestjson1_deserializeDocumentAwsWafRegionalRateBasedRuleDetails(&sv.AwsWafRegionalRateBasedRule, value); err != nil { + return err + } + case "AwsWafWebAcl": if err := awsRestjson1_deserializeDocumentAwsWafWebAclDetails(&sv.AwsWafWebAcl, value); err != nil { return err } + case "AwsXrayEncryptionConfig": + if err := awsRestjson1_deserializeDocumentAwsXrayEncryptionConfigDetails(&sv.AwsXrayEncryptionConfig, value); err != nil { + return err + } + case "Container": if err := awsRestjson1_deserializeDocumentContainerDetails(&sv.Container, value); err != nil { return err diff --git a/service/securityhub/serializers.go b/service/securityhub/serializers.go index d6a2c831147..6021f38a5b0 100644 --- a/service/securityhub/serializers.go +++ b/service/securityhub/serializers.go @@ -4913,6 +4913,13 @@ func awsRestjson1_serializeDocumentAwsCloudFrontDistributionDetails(v *types.Aws ok.String(*v.Status) } + if v.ViewerCertificate != nil { + ok := object.Key("ViewerCertificate") + if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionViewerCertificate(v.ViewerCertificate, ok); err != nil { + return err + } + } + if v.WebAclId != nil { ok := object.Key("WebAclId") ok.String(*v.WebAclId) @@ -5101,6 +5108,48 @@ func awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginS3OriginConfig return nil } +func awsRestjson1_serializeDocumentAwsCloudFrontDistributionViewerCertificate(v *types.AwsCloudFrontDistributionViewerCertificate, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AcmCertificateArn != nil { + ok := object.Key("AcmCertificateArn") + ok.String(*v.AcmCertificateArn) + } + + if v.Certificate != nil { + ok := object.Key("Certificate") + ok.String(*v.Certificate) + } + + if v.CertificateSource != nil { + ok := object.Key("CertificateSource") + ok.String(*v.CertificateSource) + } + + if v.CloudFrontDefaultCertificate { + ok := object.Key("CloudFrontDefaultCertificate") + ok.Boolean(v.CloudFrontDefaultCertificate) + } + + if v.IamCertificateId != nil { + ok := object.Key("IamCertificateId") + ok.String(*v.IamCertificateId) + } + + if v.MinimumProtocolVersion != nil { + ok := object.Key("MinimumProtocolVersion") + ok.String(*v.MinimumProtocolVersion) + } + + if v.SslSupportMethod != nil { + ok := object.Key("SslSupportMethod") + ok.String(*v.SslSupportMethod) + } + + return nil +} + func awsRestjson1_serializeDocumentAwsCloudTrailTrailDetails(v *types.AwsCloudTrailTrailDetails, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -5183,10 +5232,82 @@ func awsRestjson1_serializeDocumentAwsCloudTrailTrailDetails(v *types.AwsCloudTr return nil } +func awsRestjson1_serializeDocumentAwsCodeBuildProjectArtifactsDetails(v *types.AwsCodeBuildProjectArtifactsDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ArtifactIdentifier != nil { + ok := object.Key("ArtifactIdentifier") + ok.String(*v.ArtifactIdentifier) + } + + if v.EncryptionDisabled { + ok := object.Key("EncryptionDisabled") + ok.Boolean(v.EncryptionDisabled) + } + + if v.Location != nil { + ok := object.Key("Location") + ok.String(*v.Location) + } + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if v.NamespaceType != nil { + ok := object.Key("NamespaceType") + ok.String(*v.NamespaceType) + } + + if v.OverrideArtifactName { + ok := object.Key("OverrideArtifactName") + ok.Boolean(v.OverrideArtifactName) + } + + if v.Packaging != nil { + ok := object.Key("Packaging") + ok.String(*v.Packaging) + } + + if v.Path != nil { + ok := object.Key("Path") + ok.String(*v.Path) + } + + if v.Type != nil { + ok := object.Key("Type") + ok.String(*v.Type) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsCodeBuildProjectArtifactsList(v []types.AwsCodeBuildProjectArtifactsDetails, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentAwsCodeBuildProjectArtifactsDetails(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsRestjson1_serializeDocumentAwsCodeBuildProjectDetails(v *types.AwsCodeBuildProjectDetails, value smithyjson.Value) error { object := value.Object() defer object.Close() + if v.Artifacts != nil { + ok := object.Key("Artifacts") + if err := awsRestjson1_serializeDocumentAwsCodeBuildProjectArtifactsList(v.Artifacts, ok); err != nil { + return err + } + } + if v.EncryptionKey != nil { ok := object.Key("EncryptionKey") ok.String(*v.EncryptionKey) @@ -5199,6 +5320,13 @@ func awsRestjson1_serializeDocumentAwsCodeBuildProjectDetails(v *types.AwsCodeBu } } + if v.LogsConfig != nil { + ok := object.Key("LogsConfig") + if err := awsRestjson1_serializeDocumentAwsCodeBuildProjectLogsConfigDetails(v.LogsConfig, ok); err != nil { + return err + } + } + if v.Name != nil { ok := object.Key("Name") ok.String(*v.Name) @@ -5235,11 +5363,23 @@ func awsRestjson1_serializeDocumentAwsCodeBuildProjectEnvironment(v *types.AwsCo ok.String(*v.Certificate) } + if v.EnvironmentVariables != nil { + ok := object.Key("EnvironmentVariables") + if err := awsRestjson1_serializeDocumentAwsCodeBuildProjectEnvironmentEnvironmentVariablesList(v.EnvironmentVariables, ok); err != nil { + return err + } + } + if v.ImagePullCredentialsType != nil { ok := object.Key("ImagePullCredentialsType") ok.String(*v.ImagePullCredentialsType) } + if v.PrivilegedMode { + ok := object.Key("PrivilegedMode") + ok.Boolean(v.PrivilegedMode) + } + if v.RegistryCredential != nil { ok := object.Key("RegistryCredential") if err := awsRestjson1_serializeDocumentAwsCodeBuildProjectEnvironmentRegistryCredential(v.RegistryCredential, ok); err != nil { @@ -5255,6 +5395,41 @@ func awsRestjson1_serializeDocumentAwsCodeBuildProjectEnvironment(v *types.AwsCo return nil } +func awsRestjson1_serializeDocumentAwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails(v *types.AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if v.Type != nil { + ok := object.Key("Type") + ok.String(*v.Type) + } + + if v.Value != nil { + ok := object.Key("Value") + ok.String(*v.Value) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsCodeBuildProjectEnvironmentEnvironmentVariablesList(v []types.AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentAwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsRestjson1_serializeDocumentAwsCodeBuildProjectEnvironmentRegistryCredential(v *types.AwsCodeBuildProjectEnvironmentRegistryCredential, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -5272,6 +5447,71 @@ func awsRestjson1_serializeDocumentAwsCodeBuildProjectEnvironmentRegistryCredent return nil } +func awsRestjson1_serializeDocumentAwsCodeBuildProjectLogsConfigCloudWatchLogsDetails(v *types.AwsCodeBuildProjectLogsConfigCloudWatchLogsDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.GroupName != nil { + ok := object.Key("GroupName") + ok.String(*v.GroupName) + } + + if v.Status != nil { + ok := object.Key("Status") + ok.String(*v.Status) + } + + if v.StreamName != nil { + ok := object.Key("StreamName") + ok.String(*v.StreamName) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsCodeBuildProjectLogsConfigDetails(v *types.AwsCodeBuildProjectLogsConfigDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.CloudWatchLogs != nil { + ok := object.Key("CloudWatchLogs") + if err := awsRestjson1_serializeDocumentAwsCodeBuildProjectLogsConfigCloudWatchLogsDetails(v.CloudWatchLogs, ok); err != nil { + return err + } + } + + if v.S3Logs != nil { + ok := object.Key("S3Logs") + if err := awsRestjson1_serializeDocumentAwsCodeBuildProjectLogsConfigS3LogsDetails(v.S3Logs, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsCodeBuildProjectLogsConfigS3LogsDetails(v *types.AwsCodeBuildProjectLogsConfigS3LogsDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.EncryptionDisabled { + ok := object.Key("EncryptionDisabled") + ok.Boolean(v.EncryptionDisabled) + } + + if v.Location != nil { + ok := object.Key("Location") + ok.String(*v.Location) + } + + if v.Status != nil { + ok := object.Key("Status") + ok.String(*v.Status) + } + + return nil +} + func awsRestjson1_serializeDocumentAwsCodeBuildProjectSource(v *types.AwsCodeBuildProjectSource, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -6789,6 +7029,103 @@ func awsRestjson1_serializeDocumentAwsEc2VpcDetails(v *types.AwsEc2VpcDetails, v return nil } +func awsRestjson1_serializeDocumentAwsEc2VpcEndpointServiceDetails(v *types.AwsEc2VpcEndpointServiceDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AcceptanceRequired { + ok := object.Key("AcceptanceRequired") + ok.Boolean(v.AcceptanceRequired) + } + + if v.AvailabilityZones != nil { + ok := object.Key("AvailabilityZones") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.AvailabilityZones, ok); err != nil { + return err + } + } + + if v.BaseEndpointDnsNames != nil { + ok := object.Key("BaseEndpointDnsNames") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.BaseEndpointDnsNames, ok); err != nil { + return err + } + } + + if v.GatewayLoadBalancerArns != nil { + ok := object.Key("GatewayLoadBalancerArns") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.GatewayLoadBalancerArns, ok); err != nil { + return err + } + } + + if v.ManagesVpcEndpoints { + ok := object.Key("ManagesVpcEndpoints") + ok.Boolean(v.ManagesVpcEndpoints) + } + + if v.NetworkLoadBalancerArns != nil { + ok := object.Key("NetworkLoadBalancerArns") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.NetworkLoadBalancerArns, ok); err != nil { + return err + } + } + + if v.PrivateDnsName != nil { + ok := object.Key("PrivateDnsName") + ok.String(*v.PrivateDnsName) + } + + if v.ServiceId != nil { + ok := object.Key("ServiceId") + ok.String(*v.ServiceId) + } + + if v.ServiceName != nil { + ok := object.Key("ServiceName") + ok.String(*v.ServiceName) + } + + if v.ServiceState != nil { + ok := object.Key("ServiceState") + ok.String(*v.ServiceState) + } + + if v.ServiceType != nil { + ok := object.Key("ServiceType") + if err := awsRestjson1_serializeDocumentAwsEc2VpcEndpointServiceServiceTypeList(v.ServiceType, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsEc2VpcEndpointServiceServiceTypeDetails(v *types.AwsEc2VpcEndpointServiceServiceTypeDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ServiceType != nil { + ok := object.Key("ServiceType") + ok.String(*v.ServiceType) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsEc2VpcEndpointServiceServiceTypeList(v []types.AwsEc2VpcEndpointServiceServiceTypeDetails, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentAwsEc2VpcEndpointServiceServiceTypeDetails(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsRestjson1_serializeDocumentAwsEc2VpnConnectionDetails(v *types.AwsEc2VpnConnectionDetails, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -7109,28 +7446,98 @@ func awsRestjson1_serializeDocumentAwsEcrContainerImageDetails(v *types.AwsEcrCo return nil } -func awsRestjson1_serializeDocumentAwsEcsClusterClusterSettingsDetails(v *types.AwsEcsClusterClusterSettingsDetails, value smithyjson.Value) error { +func awsRestjson1_serializeDocumentAwsEcrRepositoryDetails(v *types.AwsEcrRepositoryDetails, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.Name != nil { - ok := object.Key("Name") - ok.String(*v.Name) + if v.Arn != nil { + ok := object.Key("Arn") + ok.String(*v.Arn) } - if v.Value != nil { - ok := object.Key("Value") - ok.String(*v.Value) + if v.ImageScanningConfiguration != nil { + ok := object.Key("ImageScanningConfiguration") + if err := awsRestjson1_serializeDocumentAwsEcrRepositoryImageScanningConfigurationDetails(v.ImageScanningConfiguration, ok); err != nil { + return err + } } - return nil -} - -func awsRestjson1_serializeDocumentAwsEcsClusterClusterSettingsList(v []types.AwsEcsClusterClusterSettingsDetails, value smithyjson.Value) error { - array := value.Array() - defer array.Close() + if v.ImageTagMutability != nil { + ok := object.Key("ImageTagMutability") + ok.String(*v.ImageTagMutability) + } - for i := range v { + if v.LifecyclePolicy != nil { + ok := object.Key("LifecyclePolicy") + if err := awsRestjson1_serializeDocumentAwsEcrRepositoryLifecyclePolicyDetails(v.LifecyclePolicy, ok); err != nil { + return err + } + } + + if v.RepositoryName != nil { + ok := object.Key("RepositoryName") + ok.String(*v.RepositoryName) + } + + if v.RepositoryPolicyText != nil { + ok := object.Key("RepositoryPolicyText") + ok.String(*v.RepositoryPolicyText) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsEcrRepositoryImageScanningConfigurationDetails(v *types.AwsEcrRepositoryImageScanningConfigurationDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ScanOnPush { + ok := object.Key("ScanOnPush") + ok.Boolean(v.ScanOnPush) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsEcrRepositoryLifecyclePolicyDetails(v *types.AwsEcrRepositoryLifecyclePolicyDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.LifecyclePolicyText != nil { + ok := object.Key("LifecyclePolicyText") + ok.String(*v.LifecyclePolicyText) + } + + if v.RegistryId != nil { + ok := object.Key("RegistryId") + ok.String(*v.RegistryId) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsEcsClusterClusterSettingsDetails(v *types.AwsEcsClusterClusterSettingsDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if v.Value != nil { + ok := object.Key("Value") + ok.String(*v.Value) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsEcsClusterClusterSettingsList(v []types.AwsEcsClusterClusterSettingsDetails, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { av := array.Value() if err := awsRestjson1_serializeDocumentAwsEcsClusterClusterSettingsDetails(&v[i], av); err != nil { return err @@ -8898,6 +9305,129 @@ func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionVolumesList(v []types.Aws return nil } +func awsRestjson1_serializeDocumentAwsEksClusterDetails(v *types.AwsEksClusterDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Arn != nil { + ok := object.Key("Arn") + ok.String(*v.Arn) + } + + if v.CertificateAuthorityData != nil { + ok := object.Key("CertificateAuthorityData") + ok.String(*v.CertificateAuthorityData) + } + + if v.ClusterStatus != nil { + ok := object.Key("ClusterStatus") + ok.String(*v.ClusterStatus) + } + + if v.Endpoint != nil { + ok := object.Key("Endpoint") + ok.String(*v.Endpoint) + } + + if v.Logging != nil { + ok := object.Key("Logging") + if err := awsRestjson1_serializeDocumentAwsEksClusterLoggingDetails(v.Logging, ok); err != nil { + return err + } + } + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if v.ResourcesVpcConfig != nil { + ok := object.Key("ResourcesVpcConfig") + if err := awsRestjson1_serializeDocumentAwsEksClusterResourcesVpcConfigDetails(v.ResourcesVpcConfig, ok); err != nil { + return err + } + } + + if v.RoleArn != nil { + ok := object.Key("RoleArn") + ok.String(*v.RoleArn) + } + + if v.Version != nil { + ok := object.Key("Version") + ok.String(*v.Version) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsEksClusterLoggingClusterLoggingDetails(v *types.AwsEksClusterLoggingClusterLoggingDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Enabled { + ok := object.Key("Enabled") + ok.Boolean(v.Enabled) + } + + if v.Types != nil { + ok := object.Key("Types") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.Types, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsEksClusterLoggingClusterLoggingList(v []types.AwsEksClusterLoggingClusterLoggingDetails, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentAwsEksClusterLoggingClusterLoggingDetails(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentAwsEksClusterLoggingDetails(v *types.AwsEksClusterLoggingDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ClusterLogging != nil { + ok := object.Key("ClusterLogging") + if err := awsRestjson1_serializeDocumentAwsEksClusterLoggingClusterLoggingList(v.ClusterLogging, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsEksClusterResourcesVpcConfigDetails(v *types.AwsEksClusterResourcesVpcConfigDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.SecurityGroupIds != nil { + ok := object.Key("SecurityGroupIds") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.SecurityGroupIds, ok); err != nil { + return err + } + } + + if v.SubnetIds != nil { + ok := object.Key("SubnetIds") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.SubnetIds, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentAwsElasticBeanstalkEnvironmentDetails(v *types.AwsElasticBeanstalkEnvironmentDetails, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -9868,6 +10398,36 @@ func awsRestjson1_serializeDocumentAwsElbLoadBalancerSourceSecurityGroup(v *type return nil } +func awsRestjson1_serializeDocumentAwsElbv2LoadBalancerAttribute(v *types.AwsElbv2LoadBalancerAttribute, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Key != nil { + ok := object.Key("Key") + ok.String(*v.Key) + } + + if v.Value != nil { + ok := object.Key("Value") + ok.String(*v.Value) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsElbv2LoadBalancerAttributes(v []types.AwsElbv2LoadBalancerAttribute, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentAwsElbv2LoadBalancerAttribute(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsRestjson1_serializeDocumentAwsElbv2LoadBalancerDetails(v *types.AwsElbv2LoadBalancerDetails, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -9899,6 +10459,13 @@ func awsRestjson1_serializeDocumentAwsElbv2LoadBalancerDetails(v *types.AwsElbv2 ok.String(*v.IpAddressType) } + if v.LoadBalancerAttributes != nil { + ok := object.Key("LoadBalancerAttributes") + if err := awsRestjson1_serializeDocumentAwsElbv2LoadBalancerAttributes(v.LoadBalancerAttributes, ok); err != nil { + return err + } + } + if v.Scheme != nil { ok := object.Key("Scheme") ok.String(*v.Scheme) @@ -10758,9 +11325,376 @@ func awsRestjson1_serializeDocumentAwsLambdaFunctionEnvironment(v *types.AwsLamb } } - if v.Variables != nil { - ok := object.Key("Variables") - if err := awsRestjson1_serializeDocumentFieldMap(v.Variables, ok); err != nil { + if v.Variables != nil { + ok := object.Key("Variables") + if err := awsRestjson1_serializeDocumentFieldMap(v.Variables, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsLambdaFunctionEnvironmentError(v *types.AwsLambdaFunctionEnvironmentError, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ErrorCode != nil { + ok := object.Key("ErrorCode") + ok.String(*v.ErrorCode) + } + + if v.Message != nil { + ok := object.Key("Message") + ok.String(*v.Message) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsLambdaFunctionLayer(v *types.AwsLambdaFunctionLayer, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Arn != nil { + ok := object.Key("Arn") + ok.String(*v.Arn) + } + + if v.CodeSize != 0 { + ok := object.Key("CodeSize") + ok.Integer(v.CodeSize) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsLambdaFunctionLayerList(v []types.AwsLambdaFunctionLayer, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentAwsLambdaFunctionLayer(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentAwsLambdaFunctionTracingConfig(v *types.AwsLambdaFunctionTracingConfig, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Mode != nil { + ok := object.Key("Mode") + ok.String(*v.Mode) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsLambdaFunctionVpcConfig(v *types.AwsLambdaFunctionVpcConfig, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.SecurityGroupIds != nil { + ok := object.Key("SecurityGroupIds") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.SecurityGroupIds, ok); err != nil { + return err + } + } + + if v.SubnetIds != nil { + ok := object.Key("SubnetIds") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.SubnetIds, ok); err != nil { + return err + } + } + + if v.VpcId != nil { + ok := object.Key("VpcId") + ok.String(*v.VpcId) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsLambdaLayerVersionDetails(v *types.AwsLambdaLayerVersionDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.CompatibleRuntimes != nil { + ok := object.Key("CompatibleRuntimes") + if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.CompatibleRuntimes, ok); err != nil { + return err + } + } + + if v.CreatedDate != nil { + ok := object.Key("CreatedDate") + ok.String(*v.CreatedDate) + } + + if v.Version != 0 { + ok := object.Key("Version") + ok.Long(v.Version) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsOpenSearchServiceDomainClusterConfigDetails(v *types.AwsOpenSearchServiceDomainClusterConfigDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DedicatedMasterCount != 0 { + ok := object.Key("DedicatedMasterCount") + ok.Integer(v.DedicatedMasterCount) + } + + if v.DedicatedMasterEnabled { + ok := object.Key("DedicatedMasterEnabled") + ok.Boolean(v.DedicatedMasterEnabled) + } + + if v.DedicatedMasterType != nil { + ok := object.Key("DedicatedMasterType") + ok.String(*v.DedicatedMasterType) + } + + if v.InstanceCount != 0 { + ok := object.Key("InstanceCount") + ok.Integer(v.InstanceCount) + } + + if v.InstanceType != nil { + ok := object.Key("InstanceType") + ok.String(*v.InstanceType) + } + + if v.WarmCount != 0 { + ok := object.Key("WarmCount") + ok.Integer(v.WarmCount) + } + + if v.WarmEnabled { + ok := object.Key("WarmEnabled") + ok.Boolean(v.WarmEnabled) + } + + if v.WarmType != nil { + ok := object.Key("WarmType") + ok.String(*v.WarmType) + } + + if v.ZoneAwarenessConfig != nil { + ok := object.Key("ZoneAwarenessConfig") + if err := awsRestjson1_serializeDocumentAwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails(v.ZoneAwarenessConfig, ok); err != nil { + return err + } + } + + if v.ZoneAwarenessEnabled { + ok := object.Key("ZoneAwarenessEnabled") + ok.Boolean(v.ZoneAwarenessEnabled) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails(v *types.AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AvailabilityZoneCount != 0 { + ok := object.Key("AvailabilityZoneCount") + ok.Integer(v.AvailabilityZoneCount) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsOpenSearchServiceDomainDetails(v *types.AwsOpenSearchServiceDomainDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AccessPolicies != nil { + ok := object.Key("AccessPolicies") + ok.String(*v.AccessPolicies) + } + + if v.Arn != nil { + ok := object.Key("Arn") + ok.String(*v.Arn) + } + + if v.ClusterConfig != nil { + ok := object.Key("ClusterConfig") + if err := awsRestjson1_serializeDocumentAwsOpenSearchServiceDomainClusterConfigDetails(v.ClusterConfig, ok); err != nil { + return err + } + } + + if v.DomainEndpoint != nil { + ok := object.Key("DomainEndpoint") + ok.String(*v.DomainEndpoint) + } + + if v.DomainEndpointOptions != nil { + ok := object.Key("DomainEndpointOptions") + if err := awsRestjson1_serializeDocumentAwsOpenSearchServiceDomainDomainEndpointOptionsDetails(v.DomainEndpointOptions, ok); err != nil { + return err + } + } + + if v.DomainEndpoints != nil { + ok := object.Key("DomainEndpoints") + if err := awsRestjson1_serializeDocumentFieldMap(v.DomainEndpoints, ok); err != nil { + return err + } + } + + if v.DomainName != nil { + ok := object.Key("DomainName") + ok.String(*v.DomainName) + } + + if v.EncryptionAtRestOptions != nil { + ok := object.Key("EncryptionAtRestOptions") + if err := awsRestjson1_serializeDocumentAwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails(v.EncryptionAtRestOptions, ok); err != nil { + return err + } + } + + if v.EngineVersion != nil { + ok := object.Key("EngineVersion") + ok.String(*v.EngineVersion) + } + + if v.Id != nil { + ok := object.Key("Id") + ok.String(*v.Id) + } + + if v.LogPublishingOptions != nil { + ok := object.Key("LogPublishingOptions") + if err := awsRestjson1_serializeDocumentAwsOpenSearchServiceDomainLogPublishingOptionsDetails(v.LogPublishingOptions, ok); err != nil { + return err + } + } + + if v.NodeToNodeEncryptionOptions != nil { + ok := object.Key("NodeToNodeEncryptionOptions") + if err := awsRestjson1_serializeDocumentAwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails(v.NodeToNodeEncryptionOptions, ok); err != nil { + return err + } + } + + if v.ServiceSoftwareOptions != nil { + ok := object.Key("ServiceSoftwareOptions") + if err := awsRestjson1_serializeDocumentAwsOpenSearchServiceDomainServiceSoftwareOptionsDetails(v.ServiceSoftwareOptions, ok); err != nil { + return err + } + } + + if v.VpcOptions != nil { + ok := object.Key("VpcOptions") + if err := awsRestjson1_serializeDocumentAwsOpenSearchServiceDomainVpcOptionsDetails(v.VpcOptions, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsOpenSearchServiceDomainDomainEndpointOptionsDetails(v *types.AwsOpenSearchServiceDomainDomainEndpointOptionsDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.CustomEndpoint != nil { + ok := object.Key("CustomEndpoint") + ok.String(*v.CustomEndpoint) + } + + if v.CustomEndpointCertificateArn != nil { + ok := object.Key("CustomEndpointCertificateArn") + ok.String(*v.CustomEndpointCertificateArn) + } + + if v.CustomEndpointEnabled { + ok := object.Key("CustomEndpointEnabled") + ok.Boolean(v.CustomEndpointEnabled) + } + + if v.EnforceHTTPS { + ok := object.Key("EnforceHTTPS") + ok.Boolean(v.EnforceHTTPS) + } + + if v.TLSSecurityPolicy != nil { + ok := object.Key("TLSSecurityPolicy") + ok.String(*v.TLSSecurityPolicy) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails(v *types.AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Enabled { + ok := object.Key("Enabled") + ok.Boolean(v.Enabled) + } + + if v.KmsKeyId != nil { + ok := object.Key("KmsKeyId") + ok.String(*v.KmsKeyId) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsOpenSearchServiceDomainLogPublishingOption(v *types.AwsOpenSearchServiceDomainLogPublishingOption, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.CloudWatchLogsLogGroupArn != nil { + ok := object.Key("CloudWatchLogsLogGroupArn") + ok.String(*v.CloudWatchLogsLogGroupArn) + } + + if v.Enabled { + ok := object.Key("Enabled") + ok.Boolean(v.Enabled) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsOpenSearchServiceDomainLogPublishingOptionsDetails(v *types.AwsOpenSearchServiceDomainLogPublishingOptionsDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AuditLogs != nil { + ok := object.Key("AuditLogs") + if err := awsRestjson1_serializeDocumentAwsOpenSearchServiceDomainLogPublishingOption(v.AuditLogs, ok); err != nil { + return err + } + } + + if v.IndexSlowLogs != nil { + ok := object.Key("IndexSlowLogs") + if err := awsRestjson1_serializeDocumentAwsOpenSearchServiceDomainLogPublishingOption(v.IndexSlowLogs, ok); err != nil { + return err + } + } + + if v.SearchSlowLogs != nil { + ok := object.Key("SearchSlowLogs") + if err := awsRestjson1_serializeDocumentAwsOpenSearchServiceDomainLogPublishingOption(v.SearchSlowLogs, ok); err != nil { return err } } @@ -10768,66 +11702,66 @@ func awsRestjson1_serializeDocumentAwsLambdaFunctionEnvironment(v *types.AwsLamb return nil } -func awsRestjson1_serializeDocumentAwsLambdaFunctionEnvironmentError(v *types.AwsLambdaFunctionEnvironmentError, value smithyjson.Value) error { +func awsRestjson1_serializeDocumentAwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails(v *types.AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.ErrorCode != nil { - ok := object.Key("ErrorCode") - ok.String(*v.ErrorCode) - } - - if v.Message != nil { - ok := object.Key("Message") - ok.String(*v.Message) + if v.Enabled { + ok := object.Key("Enabled") + ok.Boolean(v.Enabled) } return nil } -func awsRestjson1_serializeDocumentAwsLambdaFunctionLayer(v *types.AwsLambdaFunctionLayer, value smithyjson.Value) error { +func awsRestjson1_serializeDocumentAwsOpenSearchServiceDomainServiceSoftwareOptionsDetails(v *types.AwsOpenSearchServiceDomainServiceSoftwareOptionsDetails, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.Arn != nil { - ok := object.Key("Arn") - ok.String(*v.Arn) + if v.AutomatedUpdateDate != nil { + ok := object.Key("AutomatedUpdateDate") + ok.String(*v.AutomatedUpdateDate) } - if v.CodeSize != 0 { - ok := object.Key("CodeSize") - ok.Integer(v.CodeSize) + if v.Cancellable { + ok := object.Key("Cancellable") + ok.Boolean(v.Cancellable) } - return nil -} + if v.CurrentVersion != nil { + ok := object.Key("CurrentVersion") + ok.String(*v.CurrentVersion) + } -func awsRestjson1_serializeDocumentAwsLambdaFunctionLayerList(v []types.AwsLambdaFunctionLayer, value smithyjson.Value) error { - array := value.Array() - defer array.Close() + if v.Description != nil { + ok := object.Key("Description") + ok.String(*v.Description) + } - for i := range v { - av := array.Value() - if err := awsRestjson1_serializeDocumentAwsLambdaFunctionLayer(&v[i], av); err != nil { - return err - } + if v.NewVersion != nil { + ok := object.Key("NewVersion") + ok.String(*v.NewVersion) } - return nil -} -func awsRestjson1_serializeDocumentAwsLambdaFunctionTracingConfig(v *types.AwsLambdaFunctionTracingConfig, value smithyjson.Value) error { - object := value.Object() - defer object.Close() + if v.OptionalDeployment { + ok := object.Key("OptionalDeployment") + ok.Boolean(v.OptionalDeployment) + } - if v.Mode != nil { - ok := object.Key("Mode") - ok.String(*v.Mode) + if v.UpdateAvailable { + ok := object.Key("UpdateAvailable") + ok.Boolean(v.UpdateAvailable) + } + + if v.UpdateStatus != nil { + ok := object.Key("UpdateStatus") + ok.String(*v.UpdateStatus) } return nil } -func awsRestjson1_serializeDocumentAwsLambdaFunctionVpcConfig(v *types.AwsLambdaFunctionVpcConfig, value smithyjson.Value) error { +func awsRestjson1_serializeDocumentAwsOpenSearchServiceDomainVpcOptionsDetails(v *types.AwsOpenSearchServiceDomainVpcOptionsDetails, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -10845,35 +11779,6 @@ func awsRestjson1_serializeDocumentAwsLambdaFunctionVpcConfig(v *types.AwsLambda } } - if v.VpcId != nil { - ok := object.Key("VpcId") - ok.String(*v.VpcId) - } - - return nil -} - -func awsRestjson1_serializeDocumentAwsLambdaLayerVersionDetails(v *types.AwsLambdaLayerVersionDetails, value smithyjson.Value) error { - object := value.Object() - defer object.Close() - - if v.CompatibleRuntimes != nil { - ok := object.Key("CompatibleRuntimes") - if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.CompatibleRuntimes, ok); err != nil { - return err - } - } - - if v.CreatedDate != nil { - ok := object.Key("CreatedDate") - ok.String(*v.CreatedDate) - } - - if v.Version != 0 { - ok := object.Key("Version") - ok.Long(v.Version) - } - return nil } @@ -13318,6 +14223,11 @@ func awsRestjson1_serializeDocumentAwsS3BucketDetails(v *types.AwsS3BucketDetail ok.String(*v.CreatedAt) } + if v.OwnerAccountId != nil { + ok := object.Key("OwnerAccountId") + ok.String(*v.OwnerAccountId) + } + if v.OwnerId != nil { ok := object.Key("OwnerId") ok.String(*v.OwnerId) @@ -14922,6 +15832,154 @@ func awsRestjson1_serializeDocumentAwsSsmPatchComplianceDetails(v *types.AwsSsmP return nil } +func awsRestjson1_serializeDocumentAwsWafRateBasedRuleDetails(v *types.AwsWafRateBasedRuleDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.MatchPredicates != nil { + ok := object.Key("MatchPredicates") + if err := awsRestjson1_serializeDocumentAwsWafRateBasedRuleMatchPredicateList(v.MatchPredicates, ok); err != nil { + return err + } + } + + if v.MetricName != nil { + ok := object.Key("MetricName") + ok.String(*v.MetricName) + } + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if v.RateKey != nil { + ok := object.Key("RateKey") + ok.String(*v.RateKey) + } + + if v.RateLimit != 0 { + ok := object.Key("RateLimit") + ok.Long(v.RateLimit) + } + + if v.RuleId != nil { + ok := object.Key("RuleId") + ok.String(*v.RuleId) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsWafRateBasedRuleMatchPredicate(v *types.AwsWafRateBasedRuleMatchPredicate, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DataId != nil { + ok := object.Key("DataId") + ok.String(*v.DataId) + } + + if v.Negated { + ok := object.Key("Negated") + ok.Boolean(v.Negated) + } + + if v.Type != nil { + ok := object.Key("Type") + ok.String(*v.Type) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsWafRateBasedRuleMatchPredicateList(v []types.AwsWafRateBasedRuleMatchPredicate, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentAwsWafRateBasedRuleMatchPredicate(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentAwsWafRegionalRateBasedRuleDetails(v *types.AwsWafRegionalRateBasedRuleDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.MatchPredicates != nil { + ok := object.Key("MatchPredicates") + if err := awsRestjson1_serializeDocumentAwsWafRegionalRateBasedRuleMatchPredicateList(v.MatchPredicates, ok); err != nil { + return err + } + } + + if v.MetricName != nil { + ok := object.Key("MetricName") + ok.String(*v.MetricName) + } + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if v.RateKey != nil { + ok := object.Key("RateKey") + ok.String(*v.RateKey) + } + + if v.RateLimit != 0 { + ok := object.Key("RateLimit") + ok.Long(v.RateLimit) + } + + if v.RuleId != nil { + ok := object.Key("RuleId") + ok.String(*v.RuleId) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsWafRegionalRateBasedRuleMatchPredicate(v *types.AwsWafRegionalRateBasedRuleMatchPredicate, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DataId != nil { + ok := object.Key("DataId") + ok.String(*v.DataId) + } + + if v.Negated { + ok := object.Key("Negated") + ok.Boolean(v.Negated) + } + + if v.Type != nil { + ok := object.Key("Type") + ok.String(*v.Type) + } + + return nil +} + +func awsRestjson1_serializeDocumentAwsWafRegionalRateBasedRuleMatchPredicateList(v []types.AwsWafRegionalRateBasedRuleMatchPredicate, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentAwsWafRegionalRateBasedRuleMatchPredicate(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsRestjson1_serializeDocumentAwsWafWebAclDetails(v *types.AwsWafWebAclDetails, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -15007,6 +16065,28 @@ func awsRestjson1_serializeDocumentAwsWafWebAclRuleList(v []types.AwsWafWebAclRu return nil } +func awsRestjson1_serializeDocumentAwsXrayEncryptionConfigDetails(v *types.AwsXrayEncryptionConfigDetails, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.KeyId != nil { + ok := object.Key("KeyId") + ok.String(*v.KeyId) + } + + if v.Status != nil { + ok := object.Key("Status") + ok.String(*v.Status) + } + + if v.Type != nil { + ok := object.Key("Type") + ok.String(*v.Type) + } + + return nil +} + func awsRestjson1_serializeDocumentBatchImportFindingsRequestFindingList(v []types.AwsSecurityFinding, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -16735,6 +17815,13 @@ func awsRestjson1_serializeDocumentResourceDetails(v *types.ResourceDetails, val } } + if v.AwsEc2VpcEndpointService != nil { + ok := object.Key("AwsEc2VpcEndpointService") + if err := awsRestjson1_serializeDocumentAwsEc2VpcEndpointServiceDetails(v.AwsEc2VpcEndpointService, ok); err != nil { + return err + } + } + if v.AwsEc2VpnConnection != nil { ok := object.Key("AwsEc2VpnConnection") if err := awsRestjson1_serializeDocumentAwsEc2VpnConnectionDetails(v.AwsEc2VpnConnection, ok); err != nil { @@ -16749,6 +17836,13 @@ func awsRestjson1_serializeDocumentResourceDetails(v *types.ResourceDetails, val } } + if v.AwsEcrRepository != nil { + ok := object.Key("AwsEcrRepository") + if err := awsRestjson1_serializeDocumentAwsEcrRepositoryDetails(v.AwsEcrRepository, ok); err != nil { + return err + } + } + if v.AwsEcsCluster != nil { ok := object.Key("AwsEcsCluster") if err := awsRestjson1_serializeDocumentAwsEcsClusterDetails(v.AwsEcsCluster, ok); err != nil { @@ -16770,6 +17864,13 @@ func awsRestjson1_serializeDocumentResourceDetails(v *types.ResourceDetails, val } } + if v.AwsEksCluster != nil { + ok := object.Key("AwsEksCluster") + if err := awsRestjson1_serializeDocumentAwsEksClusterDetails(v.AwsEksCluster, ok); err != nil { + return err + } + } + if v.AwsElasticBeanstalkEnvironment != nil { ok := object.Key("AwsElasticBeanstalkEnvironment") if err := awsRestjson1_serializeDocumentAwsElasticBeanstalkEnvironmentDetails(v.AwsElasticBeanstalkEnvironment, ok); err != nil { @@ -16854,6 +17955,13 @@ func awsRestjson1_serializeDocumentResourceDetails(v *types.ResourceDetails, val } } + if v.AwsOpenSearchServiceDomain != nil { + ok := object.Key("AwsOpenSearchServiceDomain") + if err := awsRestjson1_serializeDocumentAwsOpenSearchServiceDomainDetails(v.AwsOpenSearchServiceDomain, ok); err != nil { + return err + } + } + if v.AwsRdsDbCluster != nil { ok := object.Key("AwsRdsDbCluster") if err := awsRestjson1_serializeDocumentAwsRdsDbClusterDetails(v.AwsRdsDbCluster, ok); err != nil { @@ -16945,6 +18053,20 @@ func awsRestjson1_serializeDocumentResourceDetails(v *types.ResourceDetails, val } } + if v.AwsWafRateBasedRule != nil { + ok := object.Key("AwsWafRateBasedRule") + if err := awsRestjson1_serializeDocumentAwsWafRateBasedRuleDetails(v.AwsWafRateBasedRule, ok); err != nil { + return err + } + } + + if v.AwsWafRegionalRateBasedRule != nil { + ok := object.Key("AwsWafRegionalRateBasedRule") + if err := awsRestjson1_serializeDocumentAwsWafRegionalRateBasedRuleDetails(v.AwsWafRegionalRateBasedRule, ok); err != nil { + return err + } + } + if v.AwsWafWebAcl != nil { ok := object.Key("AwsWafWebAcl") if err := awsRestjson1_serializeDocumentAwsWafWebAclDetails(v.AwsWafWebAcl, ok); err != nil { @@ -16952,6 +18074,13 @@ func awsRestjson1_serializeDocumentResourceDetails(v *types.ResourceDetails, val } } + if v.AwsXrayEncryptionConfig != nil { + ok := object.Key("AwsXrayEncryptionConfig") + if err := awsRestjson1_serializeDocumentAwsXrayEncryptionConfigDetails(v.AwsXrayEncryptionConfig, ok); err != nil { + return err + } + } + if v.Container != nil { ok := object.Key("Container") if err := awsRestjson1_serializeDocumentContainerDetails(v.Container, ok); err != nil { diff --git a/service/securityhub/types/types.go b/service/securityhub/types/types.go index c71b7c2aabe..3ff79cbbcc8 100644 --- a/service/securityhub/types/types.go +++ b/service/securityhub/types/types.go @@ -1061,6 +1061,10 @@ type AwsCloudFrontDistributionDetails struct { // Indicates the current status of the distribution. Status *string + // Provides information about the TLS/SSL configuration that the distribution uses + // to communicate with viewers. + ViewerCertificate *AwsCloudFrontDistributionViewerCertificate + // A unique identifier that specifies the WAF web ACL, if any, to associate with // this distribution. WebAclId *string @@ -1171,6 +1175,43 @@ type AwsCloudFrontDistributionOriginS3OriginConfig struct { noSmithyDocumentSerde } +// Provides information about the TLS/SSL configuration that the distribution uses +// to communicate with viewers. +type AwsCloudFrontDistributionViewerCertificate struct { + + // The ARN of the ACM certificate. Used if the certificate is stored in ACM. If you + // provide an ACM certificate ARN, you must also provide MinimumCertificateVersion + // and SslSupportMethod. + AcmCertificateArn *string + + // The identifier of the certificate. Note that in CloudFront, this attribute is + // deprecated. + Certificate *string + + // The source of the certificate identified by Certificate. Note that in + // CloudFront, this attribute is deprecated. + CertificateSource *string + + // Whether the distribution uses the CloudFront domain name. If set to false, then + // you provide either AcmCertificateArn or IamCertificateId. + CloudFrontDefaultCertificate bool + + // The identifier of the IAM certificate. Used if the certificate is stored in IAM. + // If you provide IamCertificateId, then you also must provide + // MinimumProtocolVersion and SslSupportMethod. + IamCertificateId *string + + // The security policy that CloudFront uses for HTTPS connections with viewers. If + // SslSupportMethod is sni-only, then MinimumProtocolVersion must be TLSv1 or + // higher. + MinimumProtocolVersion *string + + // The viewers that the distribution accepts HTTPS connections from. + SslSupportMethod *string + + noSmithyDocumentSerde +} + // Provides details about a CloudTrail trail. type AwsCloudTrailTrailDetails struct { @@ -1227,9 +1268,50 @@ type AwsCloudTrailTrailDetails struct { noSmithyDocumentSerde } +// Information about the build artifacts for the CodeBuild project. +type AwsCodeBuildProjectArtifactsDetails struct { + + // An identifier for the artifact definition. + ArtifactIdentifier *string + + // Indicates whether to disable encryption on the artifact. Only valid when Type is + // S3. + EncryptionDisabled bool + + // Only used when Type is S3. The name of the S3 bucket where the artifact is + // located. + Location *string + + // Only used when Type is S3. The name of the artifact. Used with NamepaceType and + // Path to determine the pattern for storing the artifact. + Name *string + + // Only used when Type is S3. The value to use for the namespace. Used with Name + // and Path to determine the pattern for storing the artifact. + NamespaceType *string + + // Whether the name specified in the buildspec file overrides the artifact name. + OverrideArtifactName bool + + // Only used when Type is S3. The type of output artifact to create. + Packaging *string + + // Only used when Type is S3. The path to the artifact. Used with Name and + // NamespaceType to determine the pattern for storing the artifact. + Path *string + + // The type of build artifact. + Type *string + + noSmithyDocumentSerde +} + // Information about an CodeBuild project. type AwsCodeBuildProjectDetails struct { + // Information about the build artifacts for the CodeBuild project. + Artifacts []AwsCodeBuildProjectArtifactsDetails + // The KMS key used to encrypt the build output artifacts. You can specify either // the ARN of the KMS key or, if available, the KMS key alias (using the format // alias/alias-name). @@ -1238,6 +1320,9 @@ type AwsCodeBuildProjectDetails struct { // Information about the build environment for this build project. Environment *AwsCodeBuildProjectEnvironment + // Information about logs for the build project. + LogsConfig *AwsCodeBuildProjectLogsConfigDetails + // The name of the build project. Name *string @@ -1260,6 +1345,10 @@ type AwsCodeBuildProjectEnvironment struct { // The certificate to use with this build project. Certificate *string + // A set of environment variables to make available to builds for the build + // project. + EnvironmentVariables []AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails + // The type of credentials CodeBuild uses to pull images in your build. Valid // values: // @@ -1275,6 +1364,10 @@ type AwsCodeBuildProjectEnvironment struct { // you must use CODEBUILD credentials. ImagePullCredentialsType *string + // Whether to allow the Docker daemon to run inside a Docker container. Set to true + // if the build project is used to build Docker images. + PrivilegedMode bool + // The credentials for access to a private registry. RegistryCredential *AwsCodeBuildProjectEnvironmentRegistryCredential @@ -1298,6 +1391,22 @@ type AwsCodeBuildProjectEnvironment struct { noSmithyDocumentSerde } +// Information about an environment variable that is available to builds for the +// build project. +type AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails struct { + + // The name of the environment variable. + Name *string + + // The type of environment variable. + Type *string + + // The value of the environment variable. + Value *string + + noSmithyDocumentSerde +} + // The credentials for access to a private registry. type AwsCodeBuildProjectEnvironmentRegistryCredential struct { @@ -1313,6 +1422,48 @@ type AwsCodeBuildProjectEnvironmentRegistryCredential struct { noSmithyDocumentSerde } +// Information about CloudWatch Logs for the build project. +type AwsCodeBuildProjectLogsConfigCloudWatchLogsDetails struct { + + // The group name of the logs in CloudWatch Logs. + GroupName *string + + // The current status of the logs in CloudWatch Logs for a build project. + Status *string + + // The prefix of the stream name of the CloudWatch Logs. + StreamName *string + + noSmithyDocumentSerde +} + +// Information about logs for the build project. +type AwsCodeBuildProjectLogsConfigDetails struct { + + // Information about CloudWatch Logs for the build project. + CloudWatchLogs *AwsCodeBuildProjectLogsConfigCloudWatchLogsDetails + + // Information about logs built to an S3 bucket for a build project. + S3Logs *AwsCodeBuildProjectLogsConfigS3LogsDetails + + noSmithyDocumentSerde +} + +// Information about logs built to an S3 bucket for a build project. +type AwsCodeBuildProjectLogsConfigS3LogsDetails struct { + + // Whether to disable encryption of the S3 build log output. + EncryptionDisabled bool + + // The ARN of the S3 bucket and the path prefix for S3 logs. + Location *string + + // The current status of the S3 build logs. + Status *string + + noSmithyDocumentSerde +} + // Information about the build input source code for this build project. type AwsCodeBuildProjectSource struct { @@ -2223,6 +2374,55 @@ type AwsEc2VpcDetails struct { noSmithyDocumentSerde } +// Contains details about the service configuration for a VPC endpoint service. +type AwsEc2VpcEndpointServiceDetails struct { + + // Whether requests from other Amazon Web Services accounts to create an endpoint + // to the service must first be accepted. + AcceptanceRequired bool + + // The Availability Zones where the service is available. + AvailabilityZones []string + + // The DNS names for the service. + BaseEndpointDnsNames []string + + // The ARNs of the Gateway Load Balancers for the service. + GatewayLoadBalancerArns []string + + // Whether the service manages its VPC endpoints. + ManagesVpcEndpoints bool + + // The ARNs of the Network Load Balancers for the service. + NetworkLoadBalancerArns []string + + // The private DNS name for the service. + PrivateDnsName *string + + // The identifier of the service. + ServiceId *string + + // The name of the service. + ServiceName *string + + // The current state of the service. + ServiceState *string + + // The types for the service. + ServiceType []AwsEc2VpcEndpointServiceServiceTypeDetails + + noSmithyDocumentSerde +} + +// The service type information for a VPC endpoint service. +type AwsEc2VpcEndpointServiceServiceTypeDetails struct { + + // The type of service. + ServiceType *string + + noSmithyDocumentSerde +} + // Details about an Amazon EC2 VPN connection. type AwsEc2VpnConnectionDetails struct { @@ -2410,6 +2610,52 @@ type AwsEcrContainerImageDetails struct { noSmithyDocumentSerde } +// Provides information about an Amazon Elastic Container Registry repository. +type AwsEcrRepositoryDetails struct { + + // The ARN of the repository. + Arn *string + + // The image scanning configuration for a repository. + ImageScanningConfiguration *AwsEcrRepositoryImageScanningConfigurationDetails + + // The tag mutability setting for the repository. + ImageTagMutability *string + + // Information about the lifecycle policy for the repository. + LifecyclePolicy *AwsEcrRepositoryLifecyclePolicyDetails + + // The name of the repository. + RepositoryName *string + + // The text of the repository policy. + RepositoryPolicyText *string + + noSmithyDocumentSerde +} + +// The image scanning configuration for a repository. +type AwsEcrRepositoryImageScanningConfigurationDetails struct { + + // Whether to scan images after they are pushed to a repository. + ScanOnPush bool + + noSmithyDocumentSerde +} + +// Information about the lifecycle policy for the repository. +type AwsEcrRepositoryLifecyclePolicyDetails struct { + + // The text of the lifecycle policy. + LifecyclePolicyText *string + + // The Amazon Web Services account identifier that is associated with the registry + // that contains the repository. + RegistryId *string + + noSmithyDocumentSerde +} + // Indicates whether to enable CloudWatch Container Insights for the ECS cluster. type AwsEcsClusterClusterSettingsDetails struct { @@ -3461,6 +3707,75 @@ type AwsEcsTaskDefinitionVolumesHostDetails struct { noSmithyDocumentSerde } +// Provides details about an Amazon EKS cluster. +type AwsEksClusterDetails struct { + + // The ARN of the cluster. + Arn *string + + // The certificate authority data for the cluster. + CertificateAuthorityData *string + + // The status of the cluster. + ClusterStatus *string + + // The endpoint for the Amazon EKS API server. + Endpoint *string + + // The logging configuration for the cluster. + Logging *AwsEksClusterLoggingDetails + + // The name of the cluster. + Name *string + + // The VPC configuration used by the cluster control plane. + ResourcesVpcConfig *AwsEksClusterResourcesVpcConfigDetails + + // The ARN of the IAM role that provides permissions for the Amazon EKS control + // plane to make calls to Amazon Web Services API operations on your behalf. + RoleArn *string + + // The Amazon EKS server version for the cluster. + Version *string + + noSmithyDocumentSerde +} + +// Details for a cluster logging configuration. +type AwsEksClusterLoggingClusterLoggingDetails struct { + + // Whether the logging types that are listed in Types are enabled. + Enabled bool + + // A list of logging types. + Types []string + + noSmithyDocumentSerde +} + +// The logging configuration for an Amazon EKS cluster. +type AwsEksClusterLoggingDetails struct { + + // Cluster logging configurations. + ClusterLogging []AwsEksClusterLoggingClusterLoggingDetails + + noSmithyDocumentSerde +} + +// Information about the VPC configuration used by the cluster control plane. +type AwsEksClusterResourcesVpcConfigDetails struct { + + // The security groups that are associated with the cross-account elastic network + // interfaces that are used to allow communication between your nodes and the + // Amazon EKS control plane. + SecurityGroupIds []string + + // The subnets that are associated with the cluster. + SubnetIds []string + + noSmithyDocumentSerde +} + // Contains details about an Elastic Beanstalk environment. type AwsElasticBeanstalkEnvironmentDetails struct { @@ -3562,7 +3877,7 @@ type AwsElasticBeanstalkEnvironmentTier struct { noSmithyDocumentSerde } -// Information about an Amazon Elasticsearch Service domain. +// Information about an Elasticsearch domain. type AwsElasticsearchDomainDetails struct { // IAM policy document specifying the access policies for the new Elasticsearch @@ -3581,10 +3896,10 @@ type AwsElasticsearchDomainDetails struct { // Valid characters are a-z (lowercase only), 0-9, and – (hyphen). DomainName *string - // Information about an Elasticsearch cluster configuration. + // Information about an OpenSearch cluster configuration. ElasticsearchClusterConfig *AwsElasticsearchDomainElasticsearchClusterConfigDetails - // Elasticsearch version. + // OpenSearch version. ElasticsearchVersion *string // Details about the configuration for encryption at rest. @@ -3607,7 +3922,7 @@ type AwsElasticsearchDomainDetails struct { // software. ServiceSoftwareOptions *AwsElasticsearchDomainServiceSoftwareOptions - // Information that Elasticsearch derives based on VPCOptions for the domain. + // Information that OpenSearch derives based on VPCOptions for the domain. VPCOptions *AwsElasticsearchDomainVPCOptions noSmithyDocumentSerde @@ -3620,8 +3935,8 @@ type AwsElasticsearchDomainDomainEndpointOptions struct { // Whether to require that all traffic to the domain arrive over HTTPS. EnforceHTTPS bool - // The TLS security policy to apply to the HTTPS endpoint of the Elasticsearch - // domain. Valid values: + // The TLS security policy to apply to the HTTPS endpoint of the OpenSearch domain. + // Valid values: // // * Policy-Min-TLS-1-0-2019-07, which supports TLSv1.0 and // higher @@ -3632,7 +3947,7 @@ type AwsElasticsearchDomainDomainEndpointOptions struct { noSmithyDocumentSerde } -// details about the configuration of an Elasticsearch cluster. +// details about the configuration of an OpenSearch cluster. type AwsElasticsearchDomainElasticsearchClusterConfigDetails struct { // The number of instances to use for the master node. If this attribute is @@ -3660,9 +3975,9 @@ type AwsElasticsearchDomainElasticsearchClusterConfigDetails struct { ZoneAwarenessConfig *AwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails // Whether to enable zone awareness for the Elasticsearch domain. When zone - // awareness is enabled, Elasticsearch allocates the cluster's nodes and replica - // index shards across Availability Zones in the same Region. This prevents data - // loss and minimizes downtime if a node or data center fails. + // awareness is enabled, OpenSearch allocates the cluster's nodes and replica index + // shards across Availability Zones in the same Region. This prevents data loss and + // minimizes downtime if a node or data center fails. ZoneAwarenessEnabled bool noSmithyDocumentSerde @@ -3696,10 +4011,10 @@ type AwsElasticsearchDomainLogPublishingOptions struct { // The log configuration. AuditLogs *AwsElasticsearchDomainLogPublishingOptionsLogConfig - // Configures the Elasticsearch index logs publishing. + // Configures the OpenSearch index logs publishing. IndexSlowLogs *AwsElasticsearchDomainLogPublishingOptionsLogConfig - // Configures the Elasticsearch search slow log publishing. + // Configures the OpenSearch search slow log publishing. SearchSlowLogs *AwsElasticsearchDomainLogPublishingOptionsLogConfig noSmithyDocumentSerde @@ -3731,7 +4046,7 @@ type AwsElasticsearchDomainNodeToNodeEncryptionOptions struct { type AwsElasticsearchDomainServiceSoftwareOptions struct { // The epoch time when the deployment window closes for required updates. After - // this time, Amazon Elasticsearch Service schedules the software upgrade + // this time, Amazon OpenSearch Service schedules the software upgrade // automatically. AutomatedUpdateDate *string @@ -3756,7 +4071,7 @@ type AwsElasticsearchDomainServiceSoftwareOptions struct { noSmithyDocumentSerde } -// Information that Elasticsearch derives based on VPCOptions for the domain. +// Information that OpenSearch derives based on VPCOptions for the domain. type AwsElasticsearchDomainVPCOptions struct { // The list of Availability Zones associated with the VPC subnets. @@ -4066,6 +4381,18 @@ type AwsElbLoadBalancerSourceSecurityGroup struct { noSmithyDocumentSerde } +// A load balancer attribute. +type AwsElbv2LoadBalancerAttribute struct { + + // The name of the load balancer attribute. + Key *string + + // The value of the load balancer attribute. + Value *string + + noSmithyDocumentSerde +} + // Information about a load balancer. type AwsElbv2LoadBalancerDetails struct { @@ -4089,6 +4416,9 @@ type AwsElbv2LoadBalancerDetails struct { // addresses). IpAddressType *string + // Attributes of the load balancer. + LoadBalancerAttributes []AwsElbv2LoadBalancerAttribute + // The nodes of an Internet-facing load balancer have public IP addresses. Scheme *string @@ -4681,6 +5011,227 @@ type AwsLambdaLayerVersionDetails struct { noSmithyDocumentSerde } +// Details about the configuration of an OpenSearch cluster. +type AwsOpenSearchServiceDomainClusterConfigDetails struct { + + // The number of instances to use for the master node. If this attribute is + // specified, then DedicatedMasterEnabled must be true. + DedicatedMasterCount int32 + + // Whether to use a dedicated master node for the OpenSearch domain. A dedicated + // master node performs cluster management tasks, but does not hold data or respond + // to data upload requests. + DedicatedMasterEnabled bool + + // The hardware configuration of the computer that hosts the dedicated master node. + // If this attribute is specified, then DedicatedMasterEnabled must be true. + DedicatedMasterType *string + + // The number of data nodes to use in the OpenSearch domain. + InstanceCount int32 + + // The instance type for your data nodes. + InstanceType *string + + // The number of UltraWarm instances. + WarmCount int32 + + // Whether UltraWarm is enabled. + WarmEnabled bool + + // The type of UltraWarm instance. + WarmType *string + + // Configuration options for zone awareness. Provided if ZoneAwarenessEnabled is + // true. + ZoneAwarenessConfig *AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails + + // Whether to enable zone awareness for the OpenSearch domain. When zone awareness + // is enabled, OpenSearch Service allocates the cluster's nodes and replica index + // shards across Availability Zones (AZs) in the same Region. This prevents data + // loss and minimizes downtime if a node or data center fails. + ZoneAwarenessEnabled bool + + noSmithyDocumentSerde +} + +// Configuration options for zone awareness. +type AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails struct { + + // The number of Availability Zones that the domain uses. Valid values are 2 and 3. + // The default is 2. + AvailabilityZoneCount int32 + + noSmithyDocumentSerde +} + +// Information about an Amazon OpenSearch Service domain. +type AwsOpenSearchServiceDomainDetails struct { + + // IAM policy document that specifies the access policies for the OpenSearch + // Service domain. + AccessPolicies *string + + // The ARN of the OpenSearch Service domain. + Arn *string + + // Details about the configuration of an OpenSearch cluster. + ClusterConfig *AwsOpenSearchServiceDomainClusterConfigDetails + + // The domain endpoint. + DomainEndpoint *string + + // Additional options for the domain endpoint. + DomainEndpointOptions *AwsOpenSearchServiceDomainDomainEndpointOptionsDetails + + // The domain endpoints. Used if the OpenSearch domain resides in a VPC. This is a + // map of key-value pairs. The key is always vpc. The value is the endpoint. + DomainEndpoints map[string]string + + // The name of the endpoint. + DomainName *string + + // Details about the configuration for encryption at rest. + EncryptionAtRestOptions *AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails + + // The version of the domain engine. + EngineVersion *string + + // The identifier of the domain. + Id *string + + // Configures the CloudWatch Logs to publish for the OpenSearch domain. + LogPublishingOptions *AwsOpenSearchServiceDomainLogPublishingOptionsDetails + + // Details about the configuration for node-to-node encryption. + NodeToNodeEncryptionOptions *AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails + + // Information about the status of a domain relative to the latest service + // software. + ServiceSoftwareOptions *AwsOpenSearchServiceDomainServiceSoftwareOptionsDetails + + // Information that OpenSearch Service derives based on VPCOptions for the domain. + VpcOptions *AwsOpenSearchServiceDomainVpcOptionsDetails + + noSmithyDocumentSerde +} + +// Information about additional options for the domain endpoint. +type AwsOpenSearchServiceDomainDomainEndpointOptionsDetails struct { + + // The fully qualified URL for the custom endpoint. + CustomEndpoint *string + + // The ARN for the security certificate. The certificate is managed in ACM. + CustomEndpointCertificateArn *string + + // Whether to enable a custom endpoint for the domain. + CustomEndpointEnabled bool + + // Whether to require that all traffic to the domain arrive over HTTPS. + EnforceHTTPS bool + + // The TLS security policy to apply to the HTTPS endpoint of the OpenSearch domain. + TLSSecurityPolicy *string + + noSmithyDocumentSerde +} + +// Details about the configuration for encryption at rest for the OpenSearch +// domain. +type AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails struct { + + // Whether encryption at rest is enabled. + Enabled bool + + // The KMS key ID. + KmsKeyId *string + + noSmithyDocumentSerde +} + +// Configuration details for a log publishing option. +type AwsOpenSearchServiceDomainLogPublishingOption struct { + + // The ARN of the CloudWatch Logs group to publish the logs to. + CloudWatchLogsLogGroupArn *string + + // Whether the log publishing is enabled. + Enabled bool + + noSmithyDocumentSerde +} + +// Configures the CloudWatch Logs to publish for the OpenSearch domain. +type AwsOpenSearchServiceDomainLogPublishingOptionsDetails struct { + + // Configures the OpenSearch audit logs publishing. + AuditLogs *AwsOpenSearchServiceDomainLogPublishingOption + + // Configures the OpenSearch index logs publishing. + IndexSlowLogs *AwsOpenSearchServiceDomainLogPublishingOption + + // Configures the OpenSearch search slow log publishing. + SearchSlowLogs *AwsOpenSearchServiceDomainLogPublishingOption + + noSmithyDocumentSerde +} + +// Provides details about the configuration for node-to-node encryption. +type AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails struct { + + // Whether node-to-node encryption is enabled. + Enabled bool + + noSmithyDocumentSerde +} + +// Provides information about the state of the domain relative to the latest +// service software. +type AwsOpenSearchServiceDomainServiceSoftwareOptionsDetails struct { + + // The epoch time when the deployment window closes for required updates. After + // this time, OpenSearch Service schedules the software upgrade automatically. + AutomatedUpdateDate *string + + // Whether a request to update the domain can be canceled. + Cancellable bool + + // The version of the service software that is currently installed on the domain. + CurrentVersion *string + + // A more detailed description of the service software status. + Description *string + + // The most recent version of the service software. + NewVersion *string + + // Whether the service software update is optional. + OptionalDeployment bool + + // Whether a service software update is available for the domain. + UpdateAvailable bool + + // The status of the service software update. + UpdateStatus *string + + noSmithyDocumentSerde +} + +// Contains information that OpenSearch Service derives based on the VPCOptions for +// the domain. +type AwsOpenSearchServiceDomainVpcOptionsDetails struct { + + // The list of security group IDs that are associated with the VPC endpoints for + // the domain. + SecurityGroupIds []string + + // A list of subnet IDs that are associated with the VPC endpoints for the domain. + SubnetIds []string + + noSmithyDocumentSerde +} + // An IAM role that is associated with the Amazon RDS DB cluster. type AwsRdsDbClusterAssociatedRole struct { @@ -6186,6 +6737,10 @@ type AwsS3BucketDetails struct { // spaces. For example, 2020-03-22T13:22:13.933Z. CreatedAt *string + // The Amazon Web Services account identifier of the account that owns the S3 + // bucket. + OwnerAccountId *string + // The canonical user ID of the owner of the S3 bucket. OwnerId *string @@ -7197,6 +7752,103 @@ type AwsSsmPatchComplianceDetails struct { noSmithyDocumentSerde } +// Details about a rate-based rule for global resources. A rate-based rule provides +// settings to indicate when to allow, block, or count a request. Rate-based rules +// include the number of requests that arrive over a specified period of time. +type AwsWafRateBasedRuleDetails struct { + + // The predicates to include in the rate-based rule. + MatchPredicates []AwsWafRateBasedRuleMatchPredicate + + // The name of the metrics for the rate-based rule. + MetricName *string + + // The name of the rate-based rule. + Name *string + + // The field that WAF uses to determine whether requests are likely arriving from + // single source and are subject to rate monitoring. + RateKey *string + + // The maximum number of requests that have an identical value for the field + // specified in RateKey that are allowed within a five-minute period. If the number + // of requests exceeds RateLimit and the other predicates specified in the rule are + // met, WAF triggers the action for the rule. + RateLimit int64 + + // The unique identifier for the rate-based rule. + RuleId *string + + noSmithyDocumentSerde +} + +// A match predicate. A predicate might look for characteristics such as specific +// IP addresses, geographic locations, or sizes. +type AwsWafRateBasedRuleMatchPredicate struct { + + // The unique identifier for the predicate. + DataId *string + + // If set to true, then the rule actions are performed on requests that match the + // predicate settings. If set to false, then the rule actions are performed on all + // requests except those that match the predicate settings. + Negated bool + + // The type of predicate. + Type *string + + noSmithyDocumentSerde +} + +// contains details about a rate-based rule for Regional resources. A rate-based +// rule provides settings to indicate when to allow, block, or count a request. +// Rate-based rules include the number of requests that arrive over a specified +// period of time. +type AwsWafRegionalRateBasedRuleDetails struct { + + // The predicates to include in the rate-based rule. + MatchPredicates []AwsWafRegionalRateBasedRuleMatchPredicate + + // The name of the metrics for the rate-based rule. + MetricName *string + + // The name of the rate-based rule. + Name *string + + // The field that WAF uses to determine whether requests are likely arriving from + // single source and are subject to rate monitoring. + RateKey *string + + // The maximum number of requests that have an identical value for the field + // specified in RateKey that are allowed within a five-minute period. If the number + // of requests exceeds RateLimit and the other predicates specified in the rule are + // met, WAF triggers the action for the rule. + RateLimit int64 + + // The unique identifier for the rate-based rule. + RuleId *string + + noSmithyDocumentSerde +} + +// Details for a match predicate. A predicate might look for characteristics such +// as specific IP addresses, geographic locations, or sizes. +type AwsWafRegionalRateBasedRuleMatchPredicate struct { + + // The unique identifier for the predicate. + DataId *string + + // If set to true, then the rule actions are performed on requests that match the + // predicate settings. If set to false, then the rule actions are performed on all + // requests except those that match the predicate settings. + Negated bool + + // The type of predicate. + Type *string + + noSmithyDocumentSerde +} + // Details about an WAF WebACL. type AwsWafWebAclDetails struct { @@ -7255,6 +7907,24 @@ type AwsWafWebAclRule struct { noSmithyDocumentSerde } +// Information about the encryption configuration for X-Ray. +type AwsXrayEncryptionConfigDetails struct { + + // The identifier of the KMS key that is used for encryption. Provided if Type is + // KMS. + KeyId *string + + // The current status of the encryption configuration. When Status is UPDATING, + // X-Ray might use both the old and new encryption. + Status *string + + // The type of encryption. KMS indicates that the encryption uses KMS keys. NONE + // indicates to use the default encryption. + Type *string + + noSmithyDocumentSerde +} + // A finding from a BatchUpdateFindings request that Security Hub was unable to // update. type BatchUpdateFindingsUnprocessedFinding struct { @@ -8479,12 +9149,18 @@ type ResourceDetails struct { // Details for an EC2 VPC. AwsEc2Vpc *AwsEc2VpcDetails + // Details about the service configuration for a VPC endpoint service. + AwsEc2VpcEndpointService *AwsEc2VpcEndpointServiceDetails + // Details about an EC2 VPN connection. AwsEc2VpnConnection *AwsEc2VpnConnectionDetails - // information about an Amazon ECR image. + // Information about an Amazon ECR image. AwsEcrContainerImage *AwsEcrContainerImageDetails + // Information about an Amazon Elastic Container Registry repository. + AwsEcrRepository *AwsEcrRepositoryDetails + // Details about an ECS cluster. AwsEcsCluster *AwsEcsClusterDetails @@ -8495,6 +9171,9 @@ type ResourceDetails struct { // volume definitions of an Amazon Elastic Container Service task. AwsEcsTaskDefinition *AwsEcsTaskDefinitionDetails + // Details about an Amazon EKS cluster. + AwsEksCluster *AwsEksClusterDetails + // Details about an Elastic Beanstalk environment. AwsElasticBeanstalkEnvironment *AwsElasticBeanstalkEnvironmentDetails @@ -8531,6 +9210,9 @@ type ResourceDetails struct { // Details for a Lambda layer version. AwsLambdaLayerVersion *AwsLambdaLayerVersionDetails + // Details about an Amazon OpenSearch Service domain. + AwsOpenSearchServiceDomain *AwsOpenSearchServiceDomainDetails + // Details about an Amazon RDS database cluster. AwsRdsDbCluster *AwsRdsDbClusterDetails @@ -8571,9 +9253,18 @@ type ResourceDetails struct { // patch baseline that was used to patch the instance. AwsSsmPatchCompliance *AwsSsmPatchComplianceDetails + // Details about a rate-based rule for global resources. + AwsWafRateBasedRule *AwsWafRateBasedRuleDetails + + // Details about a rate-based rule for Regional resources. + AwsWafRegionalRateBasedRule *AwsWafRegionalRateBasedRuleDetails + // Details for an WAF WebACL. AwsWafWebAcl *AwsWafWebAclDetails + // Information about the encryption configuration for X-Ray. + AwsXrayEncryptionConfig *AwsXrayEncryptionConfigDetails + // Details about a container resource related to a finding. Container *ContainerDetails diff --git a/service/ssm/api_op_CreateAssociation.go b/service/ssm/api_op_CreateAssociation.go index 94b4c491e54..5c44b94533a 100644 --- a/service/ssm/api_op_CreateAssociation.go +++ b/service/ssm/api_op_CreateAssociation.go @@ -144,8 +144,10 @@ type CreateAssociationInput struct { // The targets for the association. You can target instances by using tags, Amazon // Web Services resource groups, all instances in an Amazon Web Services account, - // or individual instance IDs. For more information about choosing targets for an - // association, see Using targets and rate controls with State Manager associations + // or individual instance IDs. You can target all instances in an Amazon Web + // Services account by specifying the InstanceIds key with a value of *. For more + // information about choosing targets for an association, see Using targets and + // rate controls with State Manager associations // (https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-state-manager-targets-and-rate-controls.html) // in the Amazon Web Services Systems Manager User Guide. Targets []types.Target diff --git a/service/ssm/api_op_StartChangeRequestExecution.go b/service/ssm/api_op_StartChangeRequestExecution.go index 82d89306c6d..b60799671b6 100644 --- a/service/ssm/api_op_StartChangeRequestExecution.go +++ b/service/ssm/api_op_StartChangeRequestExecution.go @@ -44,6 +44,16 @@ type StartChangeRequestExecutionInput struct { // This member is required. Runbooks []types.Runbook + // Indicates whether the change request can be approved automatically without the + // need for manual approvals. If AutoApprovable is enabled in a change template, + // then setting AutoApprove to true in StartChangeRequestExecution creates a change + // request that bypasses approver review. Change Calendar restrictions are not + // bypassed in this scenario. If the state of an associated calendar is CLOSED, + // change freeze approvers must still grant permission for this change request to + // run. If they don't, the change won't be processed until the calendar state is + // again OPEN. + AutoApprove bool + // User-provided details about the change. If no details are provided, content // specified in the Template information section of the associated change template // is added. diff --git a/service/ssm/serializers.go b/service/ssm/serializers.go index dd445aeaee2..e8e95b4ca7b 100644 --- a/service/ssm/serializers.go +++ b/service/ssm/serializers.go @@ -12496,6 +12496,11 @@ func awsAwsjson11_serializeOpDocumentStartChangeRequestExecutionInput(v *StartCh object := value.Object() defer object.Close() + if v.AutoApprove { + ok := object.Key("AutoApprove") + ok.Boolean(v.AutoApprove) + } + if v.ChangeDetails != nil { ok := object.Key("ChangeDetails") ok.String(*v.ChangeDetails) diff --git a/service/ssm/types/types.go b/service/ssm/types/types.go index dcbfd2422e6..244386a369a 100644 --- a/service/ssm/types/types.go +++ b/service/ssm/types/types.go @@ -94,7 +94,9 @@ type Association struct { // schedule runs in Coordinated Universal Time (UTC). ScheduleExpression *string - // The instances targeted by the request to create an association. + // The instances targeted by the request to create an association. You can target + // all instances in an Amazon Web Services account by specifying the InstanceIds + // key with a value of *. Targets []Target noSmithyDocumentSerde @@ -4589,9 +4591,7 @@ type S3OutputLocation struct { // The S3 bucket subfolder. OutputS3KeyPrefix *string - // (Deprecated) You can no longer specify this parameter. The system ignores it. - // Instead, Amazon Web Services Systems Manager automatically determines the Region - // of the S3 bucket. + // The Amazon Web Services Region of the S3 bucket. OutputS3Region *string noSmithyDocumentSerde diff --git a/service/ssooidc/internal/endpoints/endpoints.go b/service/ssooidc/internal/endpoints/endpoints.go index eef58dd600c..bed90c5e37c 100644 --- a/service/ssooidc/internal/endpoints/endpoints.go +++ b/service/ssooidc/internal/endpoints/endpoints.go @@ -129,6 +129,12 @@ var defaultPartitions = endpoints.Partitions{ Region: "eu-west-3", }, }, + "sa-east-1": endpoints.Endpoint{ + Hostname: "oidc.sa-east-1.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "sa-east-1", + }, + }, "us-east-1": endpoints.Endpoint{ Hostname: "oidc.us-east-1.amazonaws.com", CredentialScope: endpoints.CredentialScope{ diff --git a/service/synthetics/api_op_CreateCanary.go b/service/synthetics/api_op_CreateCanary.go index 1017662a36c..e8c0e8b1921 100644 --- a/service/synthetics/api_op_CreateCanary.go +++ b/service/synthetics/api_op_CreateCanary.go @@ -106,6 +106,10 @@ type CreateCanaryInput struct { // This member is required. Schedule *types.CanaryScheduleInput + // A structure that contains the configuration for canary artifacts, including the + // encryption-at-rest settings for artifacts that the canary uploads to Amazon S3. + ArtifactConfig *types.ArtifactConfigInput + // The number of days to retain data about failed runs of this canary. If you omit // this field, the default of 31 days is used. The valid range is 1 to 455 days. FailureRetentionPeriodInDays *int32 diff --git a/service/synthetics/api_op_UpdateCanary.go b/service/synthetics/api_op_UpdateCanary.go index 4a89b844431..1cf7bc2417a 100644 --- a/service/synthetics/api_op_UpdateCanary.go +++ b/service/synthetics/api_op_UpdateCanary.go @@ -40,6 +40,15 @@ type UpdateCanaryInput struct { // This member is required. Name *string + // A structure that contains the configuration for canary artifacts, including the + // encryption-at-rest settings for artifacts that the canary uploads to Amazon S3. + ArtifactConfig *types.ArtifactConfigInput + + // The location in Amazon S3 where Synthetics stores artifacts from the test runs + // of this canary. Artifacts include the log file, screenshots, and HAR files. The + // name of the S3 bucket can't include a period (.). + ArtifactS3Location *string + // A structure that includes the entry point from which the canary should start // running your script. If the script is stored in an S3 bucket, the bucket name, // key, and version are also included. diff --git a/service/synthetics/deserializers.go b/service/synthetics/deserializers.go index 041b1267688..16e15fc049f 100644 --- a/service/synthetics/deserializers.go +++ b/service/synthetics/deserializers.go @@ -1801,6 +1801,42 @@ func awsRestjson1_deserializeErrorValidationException(response *smithyhttp.Respo return output } +func awsRestjson1_deserializeDocumentArtifactConfigOutput(v **types.ArtifactConfigOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ArtifactConfigOutput + if *v == nil { + sv = &types.ArtifactConfigOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "S3Encryption": + if err := awsRestjson1_deserializeDocumentS3EncryptionConfig(&sv.S3Encryption, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentBaseScreenshot(v **types.BaseScreenshot, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -2006,6 +2042,11 @@ func awsRestjson1_deserializeDocumentCanary(v **types.Canary, value interface{}) for key, value := range shape { switch key { + case "ArtifactConfig": + if err := awsRestjson1_deserializeDocumentArtifactConfigOutput(&sv.ArtifactConfig, value); err != nil { + return err + } + case "ArtifactS3Location": if value != nil { jtv, ok := value.(string) @@ -2959,6 +3000,55 @@ func awsRestjson1_deserializeDocumentRuntimeVersionList(v *[]types.RuntimeVersio return nil } +func awsRestjson1_deserializeDocumentS3EncryptionConfig(v **types.S3EncryptionConfig, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.S3EncryptionConfig + if *v == nil { + sv = &types.S3EncryptionConfig{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "EncryptionMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EncryptionMode to be of type string, got %T instead", value) + } + sv.EncryptionMode = types.EncryptionMode(jtv) + } + + case "KmsKeyArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected KmsKeyArn to be of type string, got %T instead", value) + } + sv.KmsKeyArn = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentSecurityGroupIds(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/synthetics/serializers.go b/service/synthetics/serializers.go index 669d717de06..7f9c9ac5c0b 100644 --- a/service/synthetics/serializers.go +++ b/service/synthetics/serializers.go @@ -74,6 +74,13 @@ func awsRestjson1_serializeOpDocumentCreateCanaryInput(v *CreateCanaryInput, val object := value.Object() defer object.Close() + if v.ArtifactConfig != nil { + ok := object.Key("ArtifactConfig") + if err := awsRestjson1_serializeDocumentArtifactConfigInput(v.ArtifactConfig, ok); err != nil { + return err + } + } + if v.ArtifactS3Location != nil { ok := object.Key("ArtifactS3Location") ok.String(*v.ArtifactS3Location) @@ -957,6 +964,18 @@ func awsRestjson1_serializeOpDocumentUpdateCanaryInput(v *UpdateCanaryInput, val object := value.Object() defer object.Close() + if v.ArtifactConfig != nil { + ok := object.Key("ArtifactConfig") + if err := awsRestjson1_serializeDocumentArtifactConfigInput(v.ArtifactConfig, ok); err != nil { + return err + } + } + + if v.ArtifactS3Location != nil { + ok := object.Key("ArtifactS3Location") + ok.String(*v.ArtifactS3Location) + } + if v.Code != nil { ok := object.Key("Code") if err := awsRestjson1_serializeDocumentCanaryCodeInput(v.Code, ok); err != nil { @@ -1015,6 +1034,20 @@ func awsRestjson1_serializeOpDocumentUpdateCanaryInput(v *UpdateCanaryInput, val return nil } +func awsRestjson1_serializeDocumentArtifactConfigInput(v *types.ArtifactConfigInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.S3Encryption != nil { + ok := object.Key("S3Encryption") + if err := awsRestjson1_serializeDocumentS3EncryptionConfig(v.S3Encryption, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentBaseScreenshot(v *types.BaseScreenshot, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1147,6 +1180,23 @@ func awsRestjson1_serializeDocumentEnvironmentVariablesMap(v map[string]string, return nil } +func awsRestjson1_serializeDocumentS3EncryptionConfig(v *types.S3EncryptionConfig, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.EncryptionMode) > 0 { + ok := object.Key("EncryptionMode") + ok.String(string(v.EncryptionMode)) + } + + if v.KmsKeyArn != nil { + ok := object.Key("KmsKeyArn") + ok.String(*v.KmsKeyArn) + } + + return nil +} + func awsRestjson1_serializeDocumentSecurityGroupIds(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() diff --git a/service/synthetics/types/enums.go b/service/synthetics/types/enums.go index 41cc4d17509..584fbeb5d7c 100644 --- a/service/synthetics/types/enums.go +++ b/service/synthetics/types/enums.go @@ -87,3 +87,21 @@ func (CanaryStateReasonCode) Values() []CanaryStateReasonCode { "INVALID_PERMISSIONS", } } + +type EncryptionMode string + +// Enum values for EncryptionMode +const ( + EncryptionModeSseS3 EncryptionMode = "SSE_S3" + EncryptionModeSseKms EncryptionMode = "SSE_KMS" +) + +// Values returns all known values for EncryptionMode. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (EncryptionMode) Values() []EncryptionMode { + return []EncryptionMode{ + "SSE_S3", + "SSE_KMS", + } +} diff --git a/service/synthetics/types/types.go b/service/synthetics/types/types.go index 9226c5c50d6..aeae3b5bc92 100644 --- a/service/synthetics/types/types.go +++ b/service/synthetics/types/types.go @@ -7,6 +7,32 @@ import ( "time" ) +// A structure that contains the configuration for canary artifacts, including the +// encryption-at-rest settings for artifacts that the canary uploads to Amazon S3. +type ArtifactConfigInput struct { + + // A structure that contains the configuration of the encryption-at-rest settings + // for artifacts that the canary uploads to Amazon S3. Artifact encryption + // functionality is available only for canaries that use Synthetics runtime version + // syn-nodejs-puppeteer-3.3 or later. For more information, see Encrypting canary + // artifacts + // (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_artifact_encryption.html) + S3Encryption *S3EncryptionConfig + + noSmithyDocumentSerde +} + +// A structure that contains the configuration for canary artifacts, including the +// encryption-at-rest settings for artifacts that the canary uploads to Amazon S3. +type ArtifactConfigOutput struct { + + // A structure that contains the configuration of encryption settings for canary + // artifacts that are stored in Amazon S3. + S3Encryption *S3EncryptionConfig + + noSmithyDocumentSerde +} + // A structure representing a screenshot that is used as a baseline during visual // monitoring comparisons made by the canary. type BaseScreenshot struct { @@ -29,6 +55,10 @@ type BaseScreenshot struct { // This structure contains all information about one canary in your account. type Canary struct { + // A structure that contains the configuration for canary artifacts, including the + // encryption-at-rest settings for artifacts that the canary uploads to Amazon S3. + ArtifactConfig *ArtifactConfigOutput + // The location in Amazon S3 where Synthetics stores artifacts from the runs of // this canary. Artifacts include the log file, screenshots, and HAR files. ArtifactS3Location *string @@ -365,6 +395,25 @@ type RuntimeVersion struct { noSmithyDocumentSerde } +// A structure that contains the configuration of encryption-at-rest settings for +// canary artifacts that the canary uploads to Amazon S3. For more information, see +// Encrypting canary artifacts +// (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_artifact_encryption.html) +type S3EncryptionConfig struct { + + // The encryption method to use for artifacts created by this canary. Specify + // SSE_S3 to use server-side encryption (SSE) with an Amazon S3-managed key. + // Specify SSE-KMS to use server-side encryption with a customer-managed KMS key. + // If you omit this parameter, an Amazon Web Services-managed KMS key is used. + EncryptionMode EncryptionMode + + // The ARN of the customer-managed KMS key to use, if you specify SSE-KMS for + // EncryptionMode + KmsKeyArn *string + + noSmithyDocumentSerde +} + // An object that specifies what screenshots to use as a baseline for visual // monitoring by this canary, and optionally the parts of the screenshots to ignore // during the visual monitoring comparison. Visual monitoring is supported only on diff --git a/service/textract/internal/endpoints/endpoints.go b/service/textract/internal/endpoints/endpoints.go index 753bd7bed0a..b36356c9a29 100644 --- a/service/textract/internal/endpoints/endpoints.go +++ b/service/textract/internal/endpoints/endpoints.go @@ -62,6 +62,51 @@ var defaultPartitions = endpoints.Partitions{ }, RegionRegex: partitionRegexp.Aws, IsRegionalized: true, + Endpoints: endpoints.Endpoints{ + "ap-northeast-2": endpoints.Endpoint{}, + "ap-south-1": endpoints.Endpoint{}, + "ap-southeast-1": endpoints.Endpoint{}, + "ap-southeast-2": endpoints.Endpoint{}, + "ca-central-1": endpoints.Endpoint{}, + "eu-central-1": endpoints.Endpoint{}, + "eu-west-1": endpoints.Endpoint{}, + "eu-west-2": endpoints.Endpoint{}, + "eu-west-3": endpoints.Endpoint{}, + "fips-ca-central-1": endpoints.Endpoint{ + Hostname: "textract-fips.ca-central-1.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "ca-central-1", + }, + }, + "fips-us-east-1": endpoints.Endpoint{ + Hostname: "textract-fips.us-east-1.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoints.Endpoint{ + Hostname: "textract-fips.us-east-2.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoints.Endpoint{ + Hostname: "textract-fips.us-west-1.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoints.Endpoint{ + Hostname: "textract-fips.us-west-2.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-west-2", + }, + }, + "us-east-1": endpoints.Endpoint{}, + "us-east-2": endpoints.Endpoint{}, + "us-west-1": endpoints.Endpoint{}, + "us-west-2": endpoints.Endpoint{}, + }, }, { ID: "aws-cn", @@ -102,5 +147,21 @@ var defaultPartitions = endpoints.Partitions{ }, RegionRegex: partitionRegexp.AwsUsGov, IsRegionalized: true, + Endpoints: endpoints.Endpoints{ + "fips-us-gov-east-1": endpoints.Endpoint{ + Hostname: "textract-fips.us-gov-east-1.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-gov-east-1", + }, + }, + "fips-us-gov-west-1": endpoints.Endpoint{ + Hostname: "textract-fips.us-gov-west-1.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-gov-west-1", + }, + }, + "us-gov-east-1": endpoints.Endpoint{}, + "us-gov-west-1": endpoints.Endpoint{}, + }, }, } diff --git a/service/workmail/api_op_DescribeInboundDmarcSettings.go b/service/workmail/api_op_DescribeInboundDmarcSettings.go new file mode 100644 index 00000000000..19b23ca33bd --- /dev/null +++ b/service/workmail/api_op_DescribeInboundDmarcSettings.go @@ -0,0 +1,120 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package workmail + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Lists the settings in a DMARC policy for a specified organization. +func (c *Client) DescribeInboundDmarcSettings(ctx context.Context, params *DescribeInboundDmarcSettingsInput, optFns ...func(*Options)) (*DescribeInboundDmarcSettingsOutput, error) { + if params == nil { + params = &DescribeInboundDmarcSettingsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeInboundDmarcSettings", params, optFns, c.addOperationDescribeInboundDmarcSettingsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeInboundDmarcSettingsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeInboundDmarcSettingsInput struct { + + // Lists the ID of the given organization. + // + // This member is required. + OrganizationId *string + + noSmithyDocumentSerde +} + +type DescribeInboundDmarcSettingsOutput struct { + + // Lists the enforcement setting of the applied policy. + Enforced bool + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeInboundDmarcSettingsMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDescribeInboundDmarcSettings{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDescribeInboundDmarcSettings{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpDescribeInboundDmarcSettingsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeInboundDmarcSettings(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDescribeInboundDmarcSettings(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "workmail", + OperationName: "DescribeInboundDmarcSettings", + } +} diff --git a/service/workmail/api_op_PutInboundDmarcSettings.go b/service/workmail/api_op_PutInboundDmarcSettings.go new file mode 100644 index 00000000000..0323c091aeb --- /dev/null +++ b/service/workmail/api_op_PutInboundDmarcSettings.go @@ -0,0 +1,121 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package workmail + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Enables or disables a DMARC policy for a given organization. +func (c *Client) PutInboundDmarcSettings(ctx context.Context, params *PutInboundDmarcSettingsInput, optFns ...func(*Options)) (*PutInboundDmarcSettingsOutput, error) { + if params == nil { + params = &PutInboundDmarcSettingsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "PutInboundDmarcSettings", params, optFns, c.addOperationPutInboundDmarcSettingsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*PutInboundDmarcSettingsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type PutInboundDmarcSettingsInput struct { + + // Enforces or suspends a policy after it's applied. + // + // This member is required. + Enforced *bool + + // The ID of the organization that you are applying the DMARC policy to. + // + // This member is required. + OrganizationId *string + + noSmithyDocumentSerde +} + +type PutInboundDmarcSettingsOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationPutInboundDmarcSettingsMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpPutInboundDmarcSettings{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpPutInboundDmarcSettings{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpPutInboundDmarcSettingsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opPutInboundDmarcSettings(options.Region), middleware.Before); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opPutInboundDmarcSettings(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "workmail", + OperationName: "PutInboundDmarcSettings", + } +} diff --git a/service/workmail/deserializers.go b/service/workmail/deserializers.go index 56cf6eea32e..ea32c0a77c2 100644 --- a/service/workmail/deserializers.go +++ b/service/workmail/deserializers.go @@ -2621,6 +2621,120 @@ func awsAwsjson11_deserializeOpErrorDescribeGroup(response *smithyhttp.Response, } } +type awsAwsjson11_deserializeOpDescribeInboundDmarcSettings struct { +} + +func (*awsAwsjson11_deserializeOpDescribeInboundDmarcSettings) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpDescribeInboundDmarcSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeInboundDmarcSettings(response, &metadata) + } + output := &DescribeInboundDmarcSettingsOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsAwsjson11_deserializeOpDocumentDescribeInboundDmarcSettingsOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorDescribeInboundDmarcSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("OrganizationNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorOrganizationNotFoundException(response, errorBody) + + case strings.EqualFold("OrganizationStateException", errorCode): + return awsAwsjson11_deserializeErrorOrganizationStateException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsjson11_deserializeOpDescribeMailboxExportJob struct { } @@ -5603,6 +5717,120 @@ func awsAwsjson11_deserializeOpErrorPutAccessControlRule(response *smithyhttp.Re } } +type awsAwsjson11_deserializeOpPutInboundDmarcSettings struct { +} + +func (*awsAwsjson11_deserializeOpPutInboundDmarcSettings) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpPutInboundDmarcSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorPutInboundDmarcSettings(response, &metadata) + } + output := &PutInboundDmarcSettingsOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsAwsjson11_deserializeOpDocumentPutInboundDmarcSettingsOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorPutInboundDmarcSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("OrganizationNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorOrganizationNotFoundException(response, errorBody) + + case strings.EqualFold("OrganizationStateException", errorCode): + return awsAwsjson11_deserializeErrorOrganizationStateException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsjson11_deserializeOpPutMailboxPermissions struct { } @@ -11544,6 +11772,46 @@ func awsAwsjson11_deserializeOpDocumentDescribeGroupOutput(v **DescribeGroupOutp return nil } +func awsAwsjson11_deserializeOpDocumentDescribeInboundDmarcSettingsOutput(v **DescribeInboundDmarcSettingsOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DescribeInboundDmarcSettingsOutput + if *v == nil { + sv = &DescribeInboundDmarcSettingsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Enforced": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.Enforced = jtv + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentDescribeMailboxExportJobOutput(v **DescribeMailboxExportJobOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -13031,6 +13299,37 @@ func awsAwsjson11_deserializeOpDocumentPutAccessControlRuleOutput(v **PutAccessC return nil } +func awsAwsjson11_deserializeOpDocumentPutInboundDmarcSettingsOutput(v **PutInboundDmarcSettingsOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *PutInboundDmarcSettingsOutput + if *v == nil { + sv = &PutInboundDmarcSettingsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentPutMailboxPermissionsOutput(v **PutMailboxPermissionsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/workmail/generated.json b/service/workmail/generated.json index c44286b2959..56556105346 100644 --- a/service/workmail/generated.json +++ b/service/workmail/generated.json @@ -26,6 +26,7 @@ "api_op_DeleteUser.go", "api_op_DeregisterFromWorkMail.go", "api_op_DescribeGroup.go", + "api_op_DescribeInboundDmarcSettings.go", "api_op_DescribeMailboxExportJob.go", "api_op_DescribeOrganization.go", "api_op_DescribeResource.go", @@ -51,6 +52,7 @@ "api_op_ListTagsForResource.go", "api_op_ListUsers.go", "api_op_PutAccessControlRule.go", + "api_op_PutInboundDmarcSettings.go", "api_op_PutMailboxPermissions.go", "api_op_PutMobileDeviceAccessOverride.go", "api_op_PutRetentionPolicy.go", diff --git a/service/workmail/serializers.go b/service/workmail/serializers.go index 8946f67009d..0cc9e7d7f0e 100644 --- a/service/workmail/serializers.go +++ b/service/workmail/serializers.go @@ -1001,6 +1001,53 @@ func (m *awsAwsjson11_serializeOpDescribeGroup) HandleSerialize(ctx context.Cont return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpDescribeInboundDmarcSettings struct { +} + +func (*awsAwsjson11_serializeOpDescribeInboundDmarcSettings) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpDescribeInboundDmarcSettings) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DescribeInboundDmarcSettingsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("WorkMailService.DescribeInboundDmarcSettings") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentDescribeInboundDmarcSettingsInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + type awsAwsjson11_serializeOpDescribeMailboxExportJob struct { } @@ -2176,6 +2223,53 @@ func (m *awsAwsjson11_serializeOpPutAccessControlRule) HandleSerialize(ctx conte return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpPutInboundDmarcSettings struct { +} + +func (*awsAwsjson11_serializeOpPutInboundDmarcSettings) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpPutInboundDmarcSettings) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*PutInboundDmarcSettingsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + request.Request.URL.Path = "/" + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("WorkMailService.PutInboundDmarcSettings") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentPutInboundDmarcSettingsInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + type awsAwsjson11_serializeOpPutMailboxPermissions struct { } @@ -3460,6 +3554,18 @@ func awsAwsjson11_serializeOpDocumentDescribeGroupInput(v *DescribeGroupInput, v return nil } +func awsAwsjson11_serializeOpDocumentDescribeInboundDmarcSettingsInput(v *DescribeInboundDmarcSettingsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.OrganizationId != nil { + ok := object.Key("OrganizationId") + ok.String(*v.OrganizationId) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentDescribeMailboxExportJobInput(v *DescribeMailboxExportJobInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -4027,6 +4133,23 @@ func awsAwsjson11_serializeOpDocumentPutAccessControlRuleInput(v *PutAccessContr return nil } +func awsAwsjson11_serializeOpDocumentPutInboundDmarcSettingsInput(v *PutInboundDmarcSettingsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Enforced != nil { + ok := object.Key("Enforced") + ok.Boolean(*v.Enforced) + } + + if v.OrganizationId != nil { + ok := object.Key("OrganizationId") + ok.String(*v.OrganizationId) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentPutMailboxPermissionsInput(v *PutMailboxPermissionsInput, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/workmail/validators.go b/service/workmail/validators.go index 2b882aa613f..73a3b4e36a7 100644 --- a/service/workmail/validators.go +++ b/service/workmail/validators.go @@ -430,6 +430,26 @@ func (m *validateOpDescribeGroup) HandleInitialize(ctx context.Context, in middl return next.HandleInitialize(ctx, in) } +type validateOpDescribeInboundDmarcSettings struct { +} + +func (*validateOpDescribeInboundDmarcSettings) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDescribeInboundDmarcSettings) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DescribeInboundDmarcSettingsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDescribeInboundDmarcSettingsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDescribeMailboxExportJob struct { } @@ -910,6 +930,26 @@ func (m *validateOpPutAccessControlRule) HandleInitialize(ctx context.Context, i return next.HandleInitialize(ctx, in) } +type validateOpPutInboundDmarcSettings struct { +} + +func (*validateOpPutInboundDmarcSettings) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpPutInboundDmarcSettings) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*PutInboundDmarcSettingsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpPutInboundDmarcSettingsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpPutMailboxPermissions struct { } @@ -1234,6 +1274,10 @@ func addOpDescribeGroupValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeGroup{}, middleware.After) } +func addOpDescribeInboundDmarcSettingsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDescribeInboundDmarcSettings{}, middleware.After) +} + func addOpDescribeMailboxExportJobValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeMailboxExportJob{}, middleware.After) } @@ -1330,6 +1374,10 @@ func addOpPutAccessControlRuleValidationMiddleware(stack *middleware.Stack) erro return stack.Initialize.Add(&validateOpPutAccessControlRule{}, middleware.After) } +func addOpPutInboundDmarcSettingsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpPutInboundDmarcSettings{}, middleware.After) +} + func addOpPutMailboxPermissionsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpPutMailboxPermissions{}, middleware.After) } @@ -1853,6 +1901,21 @@ func validateOpDescribeGroupInput(v *DescribeGroupInput) error { } } +func validateOpDescribeInboundDmarcSettingsInput(v *DescribeInboundDmarcSettingsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DescribeInboundDmarcSettingsInput"} + if v.OrganizationId == nil { + invalidParams.Add(smithy.NewErrParamRequired("OrganizationId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDescribeMailboxExportJobInput(v *DescribeMailboxExportJobInput) error { if v == nil { return nil @@ -2273,6 +2336,24 @@ func validateOpPutAccessControlRuleInput(v *PutAccessControlRuleInput) error { } } +func validateOpPutInboundDmarcSettingsInput(v *PutInboundDmarcSettingsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "PutInboundDmarcSettingsInput"} + if v.OrganizationId == nil { + invalidParams.Add(smithy.NewErrParamRequired("OrganizationId")) + } + if v.Enforced == nil { + invalidParams.Add(smithy.NewErrParamRequired("Enforced")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpPutMailboxPermissionsInput(v *PutMailboxPermissionsInput) error { if v == nil { return nil